0

我正在使用NSArrayDetailViewController 中的数据显示。现在我已将其更改为 a ,当我推送到 DetailViewControllerNSMutableArray时它会崩溃。viewWillAppear什么会导致这种情况?

从 viewController 发送到 DetailViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {


if ([[segue identifier] isEqualToString:@"DetailSegue"]) {

    NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
    WinesDetailViewController *winesdetailViewController = [segue destinationViewController];

    winesdetailViewController.detailsDataSource = [[NSMutableArray alloc] initWithObjects:sortedWines,nil];
    winesdetailViewController.detailIndex = selectedRowIndex.row;
}

}

收到:

@property (strong, nonatomic) NSMutableArray *detailsDataSource;
@property int detailIndex;

视图将出现:

if ([[[detailsDataSource objectAtIndex: detailIndex] valueForKey:@"Rate"] isEqual:[NSNumber numberWithInt:1]])  {

    ratingImageView.image = [UIImage imageNamed:@"ratingButtonOne@2x.png"];
}

flagImageView.image = [UIImage imageNamed:[[detailsDataSource objectAtIndex: detailIndex] valueForKey:@"Flag"]];

这是日志中显示的部分内容:

-[__NSArrayI isEqualToString:]: unrecognized selector sent to instance 0x6d2ee20 2012-08-15 00:00:16.860 Rødvinsguiden test[4240:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI isEqualToString:]: unrecognized selector sent to instance 0x6d2ee20'

4

3 回答 3

1

NSMutableArray 是 NSArray 的子类,这意味着 NSArray 中的任何方法都可以与 NSMutableArray 完全相同的方式使用。您能否发布崩溃日志或调试器的跟踪信息。

于 2012-08-14T22:18:42.697 回答
1

winesdetailViewController.detailsDataSource是一个NSMutableArray包含一个NSArray。我猜以前您的数组包含许多字符串,并且您实际上想使用以下方法创建它:

winesdetailViewController.detailsDataSource = [[NSMutableArray alloc] initWithArray:sortedWines];
于 2012-08-14T22:23:19.460 回答
0

您可能需要使用[NSMutableArray arrayWithArray:otherArray]

于 2012-08-14T22:25:12.570 回答