這看起來是否正確,dataFilePath在磁盤上並且包含正確的數據,但MSMutable數組在initWithCoder之後不包含任何對象?我可能只是想念一些東西,但我想在繼續之前快速檢查一下。initWithCoder無法按預期工作?
-(id)initWithCoder:(NSCoder *)decoder {
self = [super init];
if(self) {
[self setReactorCore:[decoder decodeObjectForKey:@"CORE"]];
}
return self;
}
。
-(id)init {
self = [super init];
if(self) {
if([[NSFileManager defaultManager] fileExistsAtPath:[self dataFilePath]]) {
NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unArchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSMutableArray *newCore = [[NSMutableArray alloc] initWithCoder:unArchiver];
[self setReactorCore:newCore];
[newCore release];
[data release];
[unArchiver release];
} else {
NSMutableArray *newCore = [[NSMutableArray alloc] init];
[self setReactorCore:newCore];
[newCore release];
}
}
return self;
}
EDIT_001
我想我知道我錯了,我NSData的存檔,然後試圖初始化我NSMutable陣列它。我將重新修改代碼併發布更新。
gary
謝謝查克,我沒有考慮保留可變性,我會去重新考慮我在做什麼。非常感謝。 – fuzzygoat 2010-03-15 17:32:50