首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >释放NSKeyedUnarchiver导致崩溃

释放NSKeyedUnarchiver导致崩溃
EN

Stack Overflow用户
提问于 2011-04-18 13:46:59
回答 1查看 124关注 0票数 0
代码语言:javascript
复制
-(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;
}

当调用此方法时,例如:

代码语言:javascript
复制
id anotherObject = [self func];

然后当我向anotherObject发送消息时,它会导致崩溃,我知道这是一个悬挂式指针,但我不知道如何解决它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-18 17:03:18

decodeObjectForKey:正在返回自动释放的对象。当您向anotherObject发送消息时,它已被取消分配。要停止此操作,您需要确保在您获得对象的所有权时对其执行retain操作:

代码语言:javascript
复制
id anotherObject = [[self func] retain];

当你使用完这个对象时,你应该调用release来确保它被释放。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5698992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档