2016-10-07 138 views
0

我正在使用Swift 3编写Xcode 8中的应用程序,但我对iOS开发一般很陌生。过去几天我在应用程序上取得了很大的进步,但今天模拟器在成功构建之后不断崩溃。它打印出某种类型的崩溃日志,但我不知道它试图告诉我什么。它突出显示了AppDelegate中的第一个方法,并给出了SIGABRT错误。我最近的更改是,我尝试从一个uitableviewcell按钮导航到新视图,并将数据从第一个视图传递到下一个视图。我会发布我认为相关的方法以及崩溃报告。我试图查找SIGABRT错误,但它似乎是一个非特定的错误,并在阅读错误报告的唯一指南是从2011年像iOS 5上。任何帮助,非常感谢。有人可以帮我解密这个xcode崩溃日志吗?

崩溃报告:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[mondayOct3_xmlParse.ViewController numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x7fadd2030000' 
*** First throw call stack: 
(
0 CoreFoundation      0x000000010633234b __exceptionPreprocess + 171 
1 libobjc.A.dylib      0x0000000105d9321e objc_exception_throw + 48 
2 CoreFoundation      0x00000001063a1f34 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132 
3 CoreFoundation      0x00000001062b7c15 ___forwarding___ + 1013 
4 CoreFoundation      0x00000001062b7798 _CF_forwarding_prep_0 + 120 
5 UIKit        0x000000010673512f -[UIPickerView _delegateNumberOfComponents] + 56 
6 UIKit        0x000000010673425b -[UIPickerView _updateSelectedRows] + 91 
7 UIKit        0x000000010673432a -[UIPickerView didMoveToWindow] + 102 
8 UIKit        0x0000000106813ae5 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1799 
9 UIKit        0x0000000106813711 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 819 
10 UIKit        0x0000000106813711 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 819 
11 UIKit        0x0000000106806aa8 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 151 
12 UIKit        0x0000000106806996 -[UIView(Hierarchy) _postMovedFromSuperview:] + 857 
13 UIKit        0x00000001068166df -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1982 
14 UIKit        0x0000000106804b95 -[UIView(Hierarchy) addSubview:] + 838 
15 UIKit        0x0000000106c212bf -[UINavigationTransitionView transition:fromView:toView:] + 645 
16 UIKit        0x0000000106938b1b -[UINavigationController _startTransition:fromViewController:toViewController:] + 3314 
17 UIKit        0x00000001069390b9 -[UINavigationController _startDeferredTransitionIfNeeded:] + 874 
18 UIKit        0x000000010693a19b -[UINavigationController __viewWillLayoutSubviews] + 58 
19 UIKit        0x0000000106b311b7 -[UILayoutContainerView layoutSubviews] + 223 
20 UIKit        0x000000010681a344 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237 
21 QuartzCore       0x000000010b7dbcdc -[CALayer layoutSublayers] + 146 
22 QuartzCore       0x000000010b7cf7a0 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366 
23 QuartzCore       0x000000010b7cf61e _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 
24 QuartzCore       0x000000010b75d62c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280 
25 QuartzCore       0x000000010b78a713 _ZN2CA11Transaction6commitEv + 475 
26 QuartzCore       0x000000010b78b083 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113 
27 CoreFoundation      0x00000001062d6e17 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 
28 CoreFoundation      0x00000001062d6d87 __CFRunLoopDoObservers + 391 
29 CoreFoundation      0x00000001062bb4b6 CFRunLoopRunSpecific + 454 
30 UIKit        0x000000010674fdb6 -[UIApplication _run] + 434 
31 UIKit        0x0000000106755f34 UIApplicationMain + 159 
32 mondayOct3_xmlParse     0x000000010579067f main + 111 
33 libdyld.dylib      0x000000010995c68d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

UITableView的功能

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    self.performSegue(withIdentifier: "detailViewSegue", sender: indexPath); 
} 

func perpareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let destination = segue.destination as? viewTwoViewController 
    let index = (sender as! NSIndexPath).row; 

    destination?.newsStory = newsStories[index] 
    destination?.storyExpires = storiesExpire[index] 
    destination?.storySeverity = storiesSeverity[index] 
    destination?.storySummary = storiesSummary[index] 
    destination?.storyEffective = storiesEffective[index] 
    destination?.storyUrgency = storiesUrgency[index] 
    destination?.storyCertainty = storiesCertainty[index] 
    //  if (polygon.count != 0){ 
    //   destination?.polygon = polygon[index] 
    //  } 
} 

接收视图 类viewTwoViewController:UIViewController的{

@IBOutlet weak var titleOutlet: UILabel! 
@IBOutlet weak var expiresOutlet: UILabel! 
@IBOutlet weak var severityOutlet: UILabel! 
@IBOutlet weak var effectiveOutlet: UILabel! 
@IBOutlet weak var urgencyOutlet: UILabel! 
@IBOutlet weak var certaintyOutlet: UILabel! 
@IBOutlet weak var summaryOutlet: UILabel! 

var newsStory = "" 
var storyExpires = "" 
var storySeverity = "" 
var storySummary = "" 
var storyEffective = "" 
var storyUrgency = "" 
var storyCertainty = "" 

override func viewDidLoad() { 
    super.viewDidLoad() 

    titleOutlet.text = newsStory 
    expiresOutlet.text = storyExpires 
    severityOutlet.text = storySeverity 
    effectiveOutlet.text = storyEffective 
    urgencyOutlet.text = storyUrgency 
    certaintyOutlet.text = storyCertainty 
    summaryOutlet.text = storySummary 

    // Do any additional setup after loading the view. 
} 

这里是pickerview函数的错误引用:

private func numberOfComponentsInPickerView(_ pickerView: UIPickerView) -> Int 
{ 
    return 1 
} 

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int 
{ 
    return state.count 
} 

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! 
{ 
    return state[row] 
} 

func pickerView(_ pickerView: UIPickerView, didSelectRow row:Int, inComponent component:Int) 
{ 
    stateAbbrev = state[row] 
    url = NSURL(string: "http://alerts.weather.gov/cap/"+stateAbbrev+".php?x=0") 
    parseXML() 
    tableViewOutlet.reloadData() 
} 
+0

展会是你叫'numberOfComponentsInPickerView'错误是存在的。 –

+0

我将pickerview函数添加到了post @RashwanL –

+0

是的,但是您是否在代码中的某处调用了numberOfComponentsInPickerView? –

回答

0

组件功能数量的签名是斯威夫特3.应该是不同的:

func numberOfComponents(in pickerView: UIPickerView) -> Int { 
    ... 
} 
+0

我改变了这个功能,仍然得到相同的错误:终止应用程序由于未捕获异常'NSInvalidArgumentException',原因:' - [mondayOct3_xmlParse.ViewController numberOfComponentsInPickerView:]:无法识别的选择器发送到实例0x7fd28104b200' –

+0

什么类的选择器视图数据源函数在? – dan

+0

我所有的pickerview函数都在ViewController.swift中 –

相关问题