Swift 如何修复错误:此类不符合key tableView的键值编码;
我用Swift 如何修复错误:此类不符合key tableView的键值编码;,swift,uitableview,uisegmentedcontrol,Swift,Uitableview,Uisegmentedcontrol,我用表格视图和分段控件制作了一个应用程序,这是我第一次。我正在使用一些代码和教程,但它不起作用。当我运行我的应用程序时,它正在崩溃,并在日志中显示此错误: MyApplication[4928:336085]*由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合key tableView的键值编码。” *第一次抛出调用堆栈: ( 0 CoreFoundation 0x000000010516fd8
表格视图
和分段控件
制作了一个应用程序,这是我第一次。我正在使用一些代码和教程,但它不起作用。当我运行我的应用程序时,它正在崩溃,并在日志中显示此错误:
MyApplication[4928:336085]*由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合key tableView的键值编码。”
*第一次抛出调用堆栈:
(
0 CoreFoundation 0x000000010516fd85例外预处理+165
1 libobjc.A.dylib 0x0000000105504db objc_异常_抛出+48
2 CoreFoundation 0x000000010516f9c9-[N异常提升]+9
3基金会0x000 000 010364E19B-[NSbObjs](NSKEY ValueCudid)SETValu:
4 UIKit 0x0000000103c37d0c-[UIViewController设置值:forKey:+88
5 UIKit 0x0000000103e6e7fb-[UIRuntimeOutletConnection connect]+109
6 CoreFoundation 0x00000001050a9890-[NSArray makeObjectsPerformSelector:+224
7 UIKit 0x0000000103e6d1de-[UINib实例化所有者:选项:][1864
8 UIKit 0x0000000103c3e8d6-[UIViewController\u loadViewFromNibNamed:bundle:][381
9 UIKit 0x0000000103c3f202-[UIViewController loadView]+178
10 UIKit 0x0000000103c3f560-[UIViewController loadViewIfRequired]+138
11 UIKit 0x0000000103c3fcd3-[UIViewController视图]+27
12 UIKit 0x000000010440b024-[\u UIFullScreen显示控制器\u setPresentedViewController:][87
13 UIKit 0x0000000103c0f5ca-[UIPresentationController初始化与PresentedViewController:presentingViewController:+133
14 UIKit 0x0000000103c525bb-[UIViewController\u presentViewController:withAnimationController:completion:+4002
15 UIKit 0x0000000103c5585c-[UIViewController\u性能协调演示文稿:动画:][489
16 UIKit 0x0000000103c5536b-[UIViewController当前视图控制器:动画:完成:][179
17 UIKit 0x00000001041feb8d uu 67-[UIStoryboardModalSegueTemplate newDefaultPerformHandlerForSegue:][uBlock_invoke+243
18 UIKit 0x00000001041ec630-[UIStoryboardSegueTemplate]性能与目标视图控制器:发送方:][460
19 UIKit 0x00000001041ec433-[UIStoryboardSegueTemplate]执行:+82
20 UIKit 0x00000001041ec6f7-[UIStoryboardSegueTemplate执行:][156
21 UIKit 0x0000000103aa6a8d-[UIApplication sendAction:to:from:forEvent:+92
22 UIKit 0x0000000103c19e67-[UIControl发送操作:发送到:forEvent:+67
23 UIKit 0x0000000103c1a143-[UIControl\u发送操作预防:带事件:][327
24 UIKit 0x0000000103c19263-[UIControl触摸已结束:带事件:][601
25 UIKit 0x0000000103b1999f-[UIWindow\u sendTouchesForEvent:+835
26 UIKit 0x0000000103b1a6d4-[UIWindow sendEvent:+865
27 UIKit 0x0000000103ac5dc6-[UIApplication sendEvent:+263
28 UIKit 0x0000000103a9f553 _UIApplicationHandleEventQueue+6660
29 CoreFoundation 0x0000000105095301\u CFRUNLOOP\u正在调用\u OUT\u到\u A\u SOURCE0\u执行\u函数\u17
30 CoreFoundation 0x000000010508b22c\uU CFRunLoopDoSources0+556
31 CoreFoundation 0x000000010508a6e3\uuu CFRunLoopRun+867
32 CoreFoundation 0x000000010508a0f8 CFRunLoopRunSpecific+488
33图形服务0x000000010726dad2 GSEventRunModal+161
34 UIKit 0x0000000103aa4f09 UIApplicationMain+171
35 Dhikr 0x0000000101f26282干管+114
36 libdyld.dylib 0x00000001064c392d启动+1
)
libc++abi.dylib:以NSException类型的未捕获异常终止
我使用的代码是:
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()
}
这里是主故事板
我检查了很多次代码,但都不起作用。首先,我必须只使用表视图
,观看本教程()我认为使用分段控件
会很有效,就像在教程中一样。但还是不行。同样的代码,同样的错误。
有人能帮我吗?有没有可能您在某个时候将表视图的名称从“tableView”更改为“myTableView”您的故事板设置为期望一个名为
tableView
的出口,但实际的出口名称是myTableView
如果删除序列图像板中的连接并重新连接到正确的变量名,则应该可以解决问题。检查此项。我面临着类似的问题。原因是我为我的应用程序制定了两个方案/目标,并且视图控制器仅添加在其中一个方案/目标中,而我正在运行另一个目标/方案。将Viewcontroller类添加到所有目标/方案解决了此问题。如何“删除连接”?我的话,我是否必须单击故事板中的内容才能查看所有连接并将其删除?是否有一些界面向我显示故事板中的哪些内容与代码中的哪些内容相连接?我还听说有一个“.nib”文件,我还没有找到它find@pete中的IBOutlet声明