【发布时间】:2011-02-16 23:27:25
【问题描述】:
我正在尝试将二维数组声明为 Objective C 中的实例变量。我在标头(数据)中有 NSMutableArray 以及 @property(非原子,保留)。在 viewDidLoad: 我有:
data = [[NSMutableArray alloc] init];
[data addObject:[[NSArray alloc] initWithObjects:@"Cheese", @"Meat", @"Veggie", nil]];
[data addObject:[[NSArray alloc] initWithObjects:@"Sandwich", @"Soup", @"Stew", nil]];
我可以在方法中对数组进行 NSLog 记录,这是正确的,但是当我尝试从单独的方法记录它时,我什么也得不到(只有“@”),如果我尝试使用访问
NSInteger num = [[data objectAtIndex:component] count];
它崩溃了,日志中没有错误。我确信这与没有正确分配内存有关,但是我是 Obj C 的新手,并且多年来没有使用过 C 风格的语言。 FWIW,我尝试了很多变体,但都失败了,包括使用 NSArray 代替 mutable、[NSArray arrayWithObjects] 代替 [[NSArray alloc] initWithObjects],以及两者之间的每种组合。
【问题讨论】:
-
忽略最后一条评论,抱歉。我假设您已经检查并且组件在数组的范围内?
标签: iphone objective-c ios multidimensional-array