【发布时间】:2010-06-15 01:58:08
【问题描述】:
在我的 Row 类中,我有 initWithCoder 方法,并且在该方法中恢复的所有内容都可以正常工作,但仅限于该方法中。调用该方法后,我释放了 Row 类中的一组声音。声音类也有 initWithCoder 方法,声音播放良好但仅在 Row 类的 initWithCoder 方法中。解码Row对象后,声音数组完全消失,无法调用。
这是我的 initWithCoder 来源:
- (id) initWithCoder:(NSCoder *)coder {
...
soundArray = [coder decodeObjectForKey:@"soundArray"];
NSLog(@"%d",[soundArray count]);
return self;
}
日志显示计数应为 8(这是在取消归档时)。然后我创建的行对象被分配。并且生成的行对象不再有 soundArray。
[NSKeyedArchiver archiveRootObject:row toFile:@"DefaultRow"];
...
row = [NSKeyedUnarchiver unarchiveObjectWithFile:@"DefaultRow"];
所以现在每当我调用 soundArray 时它都会崩溃。
//ERROR IS HERE
NSLog(@"%d",[[row soundArray] count]);
请帮忙(soundArray 是一个 NSMutableArray)。
【问题讨论】:
标签: objective-c cocoa nsmutablearray nskeyedarchiver