我最近使用Archiver更改了一些代码,如果对象位于共享列表中,则用另一个代码替换正在解码的对象。我的应用正在使用ARC。
- (id)awakeAfterUsingCoder:(NSCoder*)decoder {
Player* player = [[Team getCurrentTeam] getPlayerWithId: self.id];
// If the player is in the current team then use that instance instead of this one.
if (player != nil) {
return player;
} else {
return self;
}
}
代码工作得很好,直到我添加了awakeAfterUsingCoder。现在我得到 malloc:对象0x7567430的错误:释放的指针未分配。似乎被替换的对象正在被释放但它从未被保留过?由于我使用ARC,我不知道我可以做些什么来解决这个问题。