我用Table View
和Segmented Control
制作了一个应用程序,这是我第一次制作。我使用了一些代码和一些教程,但它并不起作用。当我运行我的应用程序时,它会崩溃,并显示日志中的此错误:
MyApplication [4928:336085] *由于未捕获的异常而终止应用程序 'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:该类不符合键值编码兼容性键 tableView。' *第一个抛出调用堆栈: ( 0 CoreFoundation 0x000000010516fd85 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x0000000105504deb objc_exception_throw + 48 2 CoreFoundation 0x000000010516f9c9-[NSException raise] + 9 3 Foundation 0x000000010364e19b-[NSObject(NSKeyValueCoding)setValue:forKey:] + 288 4 UIKit 0x0000000103c37d0c-[UIViewController setValue:forKey:] + 88 5 UIKit 0x0000000103e6e7fb-[UIRuntimeOutletConnection connect] + 109 6 CoreFoundation 0x00000001050a9890-[NSArray makeObjectsPerformSelector:] + 224 7 UIKit 0x0000000103e6d1de-[UINib instantiateWithOwner:options:] + 1864 8 UIKit 0x0000000103c3e8d6-[UIViewController _loadViewFromNibNamed:bundle:] + 381 9 UIKit 0x0000000103c3f202-[UIViewController loadView] + 178 10 UIKit 0x0000000103c3f560-[UIViewController loadViewIfRequired] + 138 11 UIKit 0x0000000103c3fcd3-[UIViewController view] + 27 12 UIKit 0x000000010440b024-[_UIFullscreenPresentationController _setPresentedViewController:] + 87 13 UIKit 0x0000000103c0f5ca-[UIPresentationController initWithPresentedViewController:presentingViewController:] + 133 14 UIKit 0x0000000103c525bb-[UIViewController _presentViewController:withAnimationController:completion:] + 4002 15 UIKit 0x0000000103c5585c-[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 489 16 UIKit 0x0000000103c5536b-[UIViewController presentViewController:animated:completion:] + 179 17 UIKit 0x00000001041feb8d__67- [UIStoryboardModalSegueTemplate newDefaultPerformHandlerForSegue:]_block_invoke + 243 18 UIKit 0x00000001041ec630-[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 460 19 UIKit 0x00000001041ec433-[UIStoryboardSegueTemplate _perform:] + 82 20 UIKit 0x00000001041ec6f7-[UIStoryboardSegueTemplate perform:] + 156 21 UIKit 0x0000000103aa6a8d-[UIApplication sendAction:to:from:forEvent:] + 92 22 UIKit 0x0000000103c19e67-[UIControl sendAction:to:forEvent:] + 67 23 UIKit 0x0000000103c1a143-[UIControl _sendActionsForEvents:withEvent:] + 327 24 UIKit 0x0000000103c19263-[UIControl touchesEnded:withEvent:] + 601 25 UIKit 0x0000000103b1999f-[UIWindow _sendTouchesForEvent:] + 835 26 UIKit 0x0000000103b1a6d4-[UIWindow sendEvent:] + 865 27 UIKit 0x0000000103ac5dc6-[UIApplication sendEvent:] + 263 28 UIKit 0x0000000103a9f553_UIApplicationHandleEventQueue + 6660
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { let foodList:[String] = ["Bread", "Meat", "Pizza", "Other"] let drinkList:[String] = ["Water", "Soda", "Juice", "Other"] @IBOutlet weak var mySegmentedControl: UISegmentedControl! @IBOutlet weak var myTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { var returnValue = 0 switch(mySegmentedControl.selectedSegmentIndex) { case 0: returnValue = foodList.count break case 1: returnValue = drinkList.count break default: break } return returnValue } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let myCell = tableView.dequeueReusableCellWithIdentifier("myCells", forIndexPath: indexPath) switch(mySegmentedControl.selectedSegmentIndex) { case 0: myCell.textLabel!.text = foodList[indexPath.row] break case 1: myCell.textLabel!.text = drinkList[indexPath.row] break default: break } return myCell } @IBAction func segmentedControlActionChanged(sender: AnyObject) { myTableView.reloadData() }
这里是main.Storyboard
我已经多次检查了代码,但它不起作用。一开始我只使用了
Table View
,看了这个教程 (https://www.youtube.com/watch?v=ABVLSF3Vqdg) 后,我认为按照教程使用Segmented Control
应该可以工作。但仍然无法正常工作。同样的代码,同样的错误。 有人能帮我吗?