Objective c 未归档的对象会发生什么情况?
在我用NSKeyedUnarchiver解封一个对象之后,我可以像往常一样使用它,但我无法重新归档它。当我尝试时,它崩溃了Objective c 未归档的对象会发生什么情况?,objective-c,ipad,crash,nskeyedarchiver,Objective C,Ipad,Crash,Nskeyedarchiver,在我用NSKeyedUnarchiver解封一个对象之后,我可以像往常一样使用它,但我无法重新归档它。当我尝试时,它崩溃了 [NSKeyedArchiver archiveRootObject:unarchivedObject toFile:fileName]; 我试着查看苹果的开发者资源,但是我还没有看到关于正确使用NSKeyedArchiver的详细说明。请帮忙 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_P
[NSKeyedArchiver archiveRootObject:unarchivedObject toFile:fileName];
我试着查看苹果的开发者资源,但是我还没有看到关于正确使用NSKeyedArchiver的详细说明。请帮忙
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000023
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Application Specific Information:
objc_msgSend() selector name: replacementObjectForKeyedArchiver:
iPhone Simulator 3.2 (193.8), iPhone OS 3.2 (iPad/7B367)
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x958a0ed7 objc_msgSend + 23
1 OGLGame 0x0000c7e2 -[Sounds encodeWithCoder:] + 59 (Sounds.m:86)
2 Foundation 0x0280d25b _encodeObject + 827
3 Foundation 0x028243cc -[NSKeyedArchiver _encodeArrayOfObjects:forKey:] + 284
4 Foundation 0x0281a367 -[NSArray(NSArray) encodeWithCoder:] + 615
5 Foundation 0x0280d25b _encodeObject + 827
6 OGLGame 0x0000ebc2 -[Row encodeWithCoder:] + 244 (Row.m:153)
7 Foundation 0x0280d25b _encodeObject + 827
8 Foundation 0x028243cc -[NSKeyedArchiver _encodeArrayOfObjects:forKey:] + 284
9 Foundation 0x0281a367 -[NSArray(NSArray) encodeWithCoder:] + 615
10 Foundation 0x0280d25b _encodeObject + 827
11 Foundation 0x0285de10 +[NSKeyedArchiver archiveRootObject:toFile:] + 176
据我所知,这可能是我的声音课。我来检查一下,你检查一下
尽管经过研究,我发现:
replacementObjectForKeyedArchiver:
在键控存档期间被子类重写以替换另一个对象本身
- (id)替换对象ForkeyeDarchiver:(NSKeyedArchiver*)archiver
仅当编码器中未设置对象的替换映射时(例如,由于之前对该对象调用了replacementObjectForkeyDarchiver:时),才会调用此方法.苹果开发论坛上的一个线程似乎表明,对您试图编码的对象调用了
replacementObjectForkeyDarchiver:
。听起来像是您试图在-[sounds encodeWithCoder:
中编码的对象之一已从内存中释放,并且replacementObjectForKeyedArchiver:
正在调用它,从而导致seg故障
您需要发布
-[Sounds encodeWithCoder:][/code>的内容。请试着在发布时思考一下,这里的其他男士/女士需要什么来理解这个bug。要有想象力!是否每个对象都符合要存档的NSCoding
协议?