我已经在一个类中使用这样的数据填充和数组...
PowerClass.h
NSMutableArray pickerArray;
@property (nonatomic, retain) NSMutableArray pickerArray;
-
PowerClass.m
@synthesize pickerArray;
@implementation
NSMutableArray *array = [[NSArray alloc] initWithObjects:@"stef", @"steve", @"baddamans", @"jonny", nil];
pickerArray = [NSMutableArray arrayWithArray:array];
我正在尝试在另一个类中设置数组
WeekClass.h
PowerClass *powerClass;
NSMutableArray *pickerData;
@property (nonatomic, retain) NSMutableArray pickerData;
@property (nonatomic, retain) PowerClass *powerClass;
WeekClass.m
@implementation
pickerData = [NSMutableArray arrayWithArray:powerClass.pickerArray];
我没有错误或警告。它只是崩溃了。 NSLog表示powerClass.pickerArray为NULL。
请指点我正确的方向。
答案 0 :(得分:2)
内存管理!
您已设置pickerArray = [NSMutableArray arrayWithArray:array];
,这是一个自动释放的对象。当你之后要求pickerArray时,它就消失了!
解决方案是使用@synthesize
d访问器。而不是:
pickerArray = [NSMutableArray arrayWithArray:array];
...使用以下其中一项:
[self setPickerArray:[NSMutableArray arrayWithArray:array]];
self.pickerArray = [NSMutableArray arrayWithArray:array];
//These two are exactly equivalent, but are both very different from what you have now.
这样,您的财产将为您处理内存管理。