Iphone 将两个表视图合并到具有核心数据的选项卡栏时出现问题
我有一个带有多个视图的选项卡栏,一个带有连接到核心数据的tableview。现在我在另一个项目中又创建了一个tableview,我想将它合并到我的第一个项目中。这对我来说并不新鲜,我以前在另一个项目中做过,在那里我有三个具有不同核心数据表的TableView,都工作得很好。所以我想这应该是在公园里散步 在我的AppDelage.m和.h中,我将managedObjectContext的所有代码添加并复制到managedObjectContext2。并制作了一个新的导航控制器“navigationController2” 然后在protokollist.m中,我将managedObjectContext更改为managedObjectContext2。并在MainWindow.nib中进行了必要的连接 但当我尝试运行该项目时,会收到以下错误消息:Iphone 将两个表视图合并到具有核心数据的选项卡栏时出现问题,iphone,objective-c,Iphone,Objective C,我有一个带有多个视图的选项卡栏,一个带有连接到核心数据的tableview。现在我在另一个项目中又创建了一个tableview,我想将它合并到我的第一个项目中。这对我来说并不新鲜,我以前在另一个项目中做过,在那里我有三个具有不同核心数据表的TableView,都工作得很好。所以我想这应该是在公园里散步 在我的AppDelage.m和.h中,我将managedObjectContext的所有代码添加并复制到managedObjectContext2。并制作了一个新的导航控制器“navigation
2011-07-24 18:22:58.188 Kortspel[1346:207] Unknown class ProtokollList in Interface Builder file.
2011-07-24 18:22:58.198 Kortspel[1346:207] -[UIViewController setManagedObjectContext2:]: unrecognized selector sent to instance 0x4d13c40
2011-07-24 18:22:58.199 Kortspel[1346:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController setManagedObjectContext2:]: unrecognized selector sent to instance 0x4d13c40'
*** Call stack at first throw:
(
0 CoreFoundation 0x00fab5a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x010ff313 objc_exception_throw + 44
2 CoreFoundation 0x00fad0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00f1c966 ___forwarding___ + 966
4 CoreFoundation 0x00f1c522 _CF_forwarding_prep_0 + 50
5 Kortspel 0x00001f28 -[KortAppDelegate applicationDidFinishLaunching:] + 709
6 UIKit 0x002c4ce2 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1252
7 UIKit 0x002c6d88 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
8 UIKit 0x002d1617 -[UIApplication handleEvent:withNewEvent:] + 1533
9 UIKit 0x002c9abf -[UIApplication sendEvent:] + 71
10 UIKit 0x002cef2e _UIApplicationHandleEvent + 7576
11 GraphicsServices 0x01903992 PurpleEventCallback + 1550
12 CoreFoundation 0x00f8c944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
13 CoreFoundation 0x00eeccf7 __CFRunLoopDoSource1 + 215
14 CoreFoundation 0x00ee9f83 __CFRunLoopRun + 979
15 CoreFoundation 0x00ee9840 CFRunLoopRunSpecific + 208
16 CoreFoundation 0x00ee9761 CFRunLoopRunInMode + 97
17 UIKit 0x002c67d2 -[UIApplication _run] + 623
18 UIKit 0x002d2c93 UIApplicationMain + 1160
19 Kortspel 0x00001c40 main + 102
20 Kortspel 0x00001bd1 start + 53
)
terminate called after throwing an instance of 'NSException'
2011-07-25 20:06:56.588 Kortspel[3205:207] Unknown class ProtokollList in Interface Builder file.
2011-07-25 20:07:01.585 Kortspel[3205:207] -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x590f3f0
2011-07-25 20:07:01.587 Kortspel[3205:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x590f3f0'
*** Call stack at first throw:
(
0 CoreFoundation 0x00fb25a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x01106313 objc_exception_throw + 44
2 CoreFoundation 0x00fb40bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00f23966 ___forwarding___ + 966
4 CoreFoundation 0x00f23522 _CF_forwarding_prep_0 + 50
5 UIKit 0x004882b7 -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] + 1834
6 UIKit 0x00485d88 -[UITableViewRowData numberOfRows] + 108
7 UIKit 0x00339677 -[UITableView noteNumberOfRowsChanged] + 132
8 UIKit 0x00346708 -[UITableView reloadData] + 773
9 UIKit 0x00343844 -[UITableView layoutSubviews] + 42
10 QuartzCore 0x01f52a5a -[CALayer layoutSublayers] + 181
11 QuartzCore 0x01f54ddc CALayerLayoutIfNeeded + 220
12 QuartzCore 0x01efa0b4 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
13 QuartzCore 0x01efb294 _ZN2CA11Transaction6commitEv + 292
14 QuartzCore 0x01efb46d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
15 CoreFoundation 0x00f9389b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
16 CoreFoundation 0x00f286e7 __CFRunLoopDoObservers + 295
17 CoreFoundation 0x00ef11d7 __CFRunLoopRun + 1575
18 CoreFoundation 0x00ef0840 CFRunLoopRunSpecific + 208
19 CoreFoundation 0x00ef0761 CFRunLoopRunInMode + 97
20 GraphicsServices 0x019091c4 GSEventRunModal + 217
21 GraphicsServices 0x01909289 GSEventRun + 115
22 UIKit 0x002d9c93 UIApplicationMain + 1160
23 Kortspel 0x00002524 main + 102
24 Kortspel 0x000024b5 start + 53
)
terminate called after throwing an instance of 'NSException'
我不知道它说它不识别“protokollist”类,因为它是在protokollist.h中定义的
有人知道吗?这是发射前的最后一步
编辑:
如果我尝试空白:
/*
ProtokollList *protokollList = (ProtokollList *)[navigationController2 topViewController];
// Set its managedObjectContext property to the managed object context
protokollList.managedObjectContext2 = self.managedObjectContext2;
*/
我可以打开项目,但当我单击Protokollist tableview时,我会收到以下新的错误消息:
2011-07-24 18:22:58.188 Kortspel[1346:207] Unknown class ProtokollList in Interface Builder file.
2011-07-24 18:22:58.198 Kortspel[1346:207] -[UIViewController setManagedObjectContext2:]: unrecognized selector sent to instance 0x4d13c40
2011-07-24 18:22:58.199 Kortspel[1346:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController setManagedObjectContext2:]: unrecognized selector sent to instance 0x4d13c40'
*** Call stack at first throw:
(
0 CoreFoundation 0x00fab5a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x010ff313 objc_exception_throw + 44
2 CoreFoundation 0x00fad0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00f1c966 ___forwarding___ + 966
4 CoreFoundation 0x00f1c522 _CF_forwarding_prep_0 + 50
5 Kortspel 0x00001f28 -[KortAppDelegate applicationDidFinishLaunching:] + 709
6 UIKit 0x002c4ce2 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1252
7 UIKit 0x002c6d88 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
8 UIKit 0x002d1617 -[UIApplication handleEvent:withNewEvent:] + 1533
9 UIKit 0x002c9abf -[UIApplication sendEvent:] + 71
10 UIKit 0x002cef2e _UIApplicationHandleEvent + 7576
11 GraphicsServices 0x01903992 PurpleEventCallback + 1550
12 CoreFoundation 0x00f8c944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
13 CoreFoundation 0x00eeccf7 __CFRunLoopDoSource1 + 215
14 CoreFoundation 0x00ee9f83 __CFRunLoopRun + 979
15 CoreFoundation 0x00ee9840 CFRunLoopRunSpecific + 208
16 CoreFoundation 0x00ee9761 CFRunLoopRunInMode + 97
17 UIKit 0x002c67d2 -[UIApplication _run] + 623
18 UIKit 0x002d2c93 UIApplicationMain + 1160
19 Kortspel 0x00001c40 main + 102
20 Kortspel 0x00001bd1 start + 53
)
terminate called after throwing an instance of 'NSException'
2011-07-25 20:06:56.588 Kortspel[3205:207] Unknown class ProtokollList in Interface Builder file.
2011-07-25 20:07:01.585 Kortspel[3205:207] -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x590f3f0
2011-07-25 20:07:01.587 Kortspel[3205:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x590f3f0'
*** Call stack at first throw:
(
0 CoreFoundation 0x00fb25a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x01106313 objc_exception_throw + 44
2 CoreFoundation 0x00fb40bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00f23966 ___forwarding___ + 966
4 CoreFoundation 0x00f23522 _CF_forwarding_prep_0 + 50
5 UIKit 0x004882b7 -[UISectionRowData refreshWithSection:tableView:tableViewRowData:] + 1834
6 UIKit 0x00485d88 -[UITableViewRowData numberOfRows] + 108
7 UIKit 0x00339677 -[UITableView noteNumberOfRowsChanged] + 132
8 UIKit 0x00346708 -[UITableView reloadData] + 773
9 UIKit 0x00343844 -[UITableView layoutSubviews] + 42
10 QuartzCore 0x01f52a5a -[CALayer layoutSublayers] + 181
11 QuartzCore 0x01f54ddc CALayerLayoutIfNeeded + 220
12 QuartzCore 0x01efa0b4 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
13 QuartzCore 0x01efb294 _ZN2CA11Transaction6commitEv + 292
14 QuartzCore 0x01efb46d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
15 CoreFoundation 0x00f9389b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
16 CoreFoundation 0x00f286e7 __CFRunLoopDoObservers + 295
17 CoreFoundation 0x00ef11d7 __CFRunLoopRun + 1575
18 CoreFoundation 0x00ef0840 CFRunLoopRunSpecific + 208
19 CoreFoundation 0x00ef0761 CFRunLoopRunInMode + 97
20 GraphicsServices 0x019091c4 GSEventRunModal + 217
21 GraphicsServices 0x01909289 GSEventRun + 115
22 UIKit 0x002d9c93 UIApplicationMain + 1160
23 Kortspel 0x00002524 main + 102
24 Kortspel 0x000024b5 start + 53
)
terminate called after throwing an instance of 'NSException'
致以最良好的祝愿,
xqtr编辑:
我知道关键点是关于IB的警告(一开始没有注意到)
您可以检查protokollist.h和protokollist.m是否有效地分配给您正在构建的目标吗?(我想是的,否则你会有更多的链接问题,无论如何,这是一个基本的检查)
如果这是确定的,那么我会简单地尝试一个清洁和重建所有
如果这不能解决问题,那么这可能意味着链接器没有在最终二进制文件中包含protokollist.m,因为进行了一些优化(该类可能永远不会在代码的其余部分中引用,仅在Interface Builder中引用)。解决方法是将-all\u load
添加到项目的链接器标志中
如果这没有帮助,我很难过,但我没有更多的建议
您的电话是:
protokollList.managedObjectContext2 = self.managedObjectContext2;
在protokollist
中找不到名为managedObjectContext2
的属性。这可以通过以下行进行推断:
-[UIViewController setManagedObjectContext2:]: unrecognized selector sent to instance 0x4d13c40
因此,您可以在protokollist
中定义managedObjectContext2
(它应该是UIViewController
)
编辑
接口协议:UITableViewController{
NSFetchedResultsController*FetchedResultsController 2;
NSManagedObjectContext*managedObjectContext2;
}
@属性(非原子,保留)NSManagedObjectContext*managedObjectContext2;
@结束
Hi@sergio,谢谢您的回复!在ProtokollList.h中,我已经定义了managedObjectContext2:@interface ProtokollList:UITableViewController{NSFetchedResultsController*fetchedResultsController2;NSManagedObjectContext*managedObjectContext2;}@end或者我做了什么错事吗?您应该缺少属性定义,请参阅我的编辑,不要忘了.m
文件中的@synthesis
…不,我也有属性定义,所以不可能是它。@属性(非原子,保留)NSFetchedResultsController*FetchedResultsController;2;@属性(非原子,保留)NSManagedObjectContext*managedObjectContext2;和@synthesisfetchedresultscoontroller2,managedObjectContext2;再次感谢您的回复和新的编辑。我都试过了,但是我得到了相同的错误信息。真烦人。我会发布整个代码,但不能,因为发布点太少了。我将在几个小时后发布。还要检查appDelegate中的[navigationController2 topViewController]
是否返回ProtoKollist类型的真实对象,以及演员阵容是否在玩把戏。。。