0

DBPostListViewController 有一个需要设置的 NSArray *postList。

我不断得到

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setPostList:]: unrecognized selector sent to instance 0x6e493d0

在 setPostList 函数的 prepareForSegue 中:

    NSArray *tempAry = [str componentsSeparatedByString:@"|@|"];
NSMutableArray *postArray = [[NSMutableArray alloc] initWithCapacity:[tempAry count]];
for (NSString *entry in tempAry) {
    DBPost *tempPost = [[DBPost alloc] initWithString:entry];
    [postArray addObject:tempPost];
}

DBPostListViewController *dest = [segue destinationViewController];
[dest setPostList:postArray];
4

1 回答 1

3

您的错误消息解释了它:

-[UITableViewController setPostList:]: unrecognized selector

您在这些代码行中发送该消息:

DBPostListViewController *dest = [segue destinationViewController];
[dest setPostList:postArray];

Objective-C 是动态类型的,所以即使你声明dest为 a DBPostListViewController,它也可以是任何 Objective-C 对象。在这种情况下,它恰好是一个UITableViewController.

您忘记在情节提要文件中设置自定义类,因此 UIKit 只是创建了一个普通 UITableViewController 的实例。修复您的故事板并重新运行您的应用程序。

于 2012-05-23T17:05:40.447 回答