无法在segue中设置NSArray

时间:2012-05-23 17:00:51

标签: ios nsarray segue

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];

1 个答案:

答案 0 :(得分:3)

您的错误消息说明了这一点:

-[UITableViewController setPostList:]: unrecognized selector

您可以在以下代码行中发送该消息:

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

Objective-C是动态类型的,因此即使您已将dest声明为DBPostListViewController,它也可以是任何Objective-C对象。在这种情况下,它恰好是UITableViewController

您忘记在storyboard文件中设置自定义类,因此UIKit只是创建一个简单的UITableViewController实例。修复故事板并重新运行您的应用。