0

NSArrayDetailViewController でデータを表示するために を使用していました。に変更しましたが、DetailViewController にプッシュするNSMutableArrayと到達するとクラッシュします。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 に答える