微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

释放NSKeyedUnarchiver导致崩溃

如何解决释放NSKeyedUnarchiver导致崩溃

|
-(id)func
{
        NSData* data = [[NSData alloc] initWithContentsOfFile:aFilePath];
    NSKeyedUnarchiver* unachiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
    id object = [unachiver decodeObjectForKey:key];
    [unachiver finishDecoding];
        [unachiver release];
        [data release];
    return object;
}
调用方法时,例如:
id anotherObject = [self func];
然后,当我将消息发送到anotherObject时,它将导致崩溃,我知道它是一个悬挂指针,但是我不知道如何解决它。     

解决方法

decodeObjectForKey:
返回一个自动释放的对象。到向
anotherObject
发送消息时,该消息已被取消分配。要停止此操作,您需要确保在拥有该对象时将其“ 4”个对象:
id anotherObject = [[self func] retain];
完成对象处理后,应调用ѭ6以确保释放它。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。