【发布时间】:2009-07-22 20:40:01
【问题描述】:
请考虑构造数组并将其返回给父对象的问题。请在下面查看我的代码和 cmets。
我的问题是:为什么方法三有效,而方法一和二无效?
// ****************************
// Master.m
// ****************************
// Simply declare array and call accessor
NSMutableArray * allElementTypes;
allElementTypes = [ElementObject badElements];
// ****************************
// ElementObject.m
// ****************************
// Doesn't work (EXE_BAD_ACCESS)
+ (NSMutableArray*) badElements {
NSMutableArray * array = [[NSMutableArray alloc] initWithObjects:@"crab", @"poison", @"snake"];
return array;
}
// Doesn't work (EXE_BAD_ACCESS)
+ (NSMutableArray*) badElements {
return [NSMutableArray arrayWithObjects:@"crab", @"poison", @"snake"];
}
// WORKS
+ (NSMutableArray*) badElements {
NSMutableArray * array = [[NSMutableArray alloc] init];
[array addObject:@"crab"];
[array addObject:@"poison"];
[array addObject:@"snake"];
return array; // TODO: release this memory
}
【问题讨论】:
-
我是
EXC_BAD_ACCESS,顺便说一句。EXC,异常的缩写。
标签: iphone objective-c cocoa cocoa-touch