ios NSKeyedArchiver 释放 = 错误访问

Posted

技术标签:

【中文标题】ios NSKeyedArchiver 释放 = 错误访问【英文标题】:ios NSKeyedArchiver releasing = bad access 【发布时间】:2011-10-21 08:54:17 【问题描述】:

我有一个菜鸟问题,我希望你指出我正确的方向。基本上我有一个实现复制协议的自定义类。但是,当我在执行期间保存类时,我发布了自定义类,但访问权限不正确。我可以在仪器中看到保留计数为-2。我使用以下方法保存自定义类:

-(void)storeDataInFile:(NSString*)dataFileName DataArray:(NSArray*)dataToStore 

    //Get the path
    NSString *path = [self pathToDocumentsForDataFile:dataFileName];
    //Archive the file
    [NSKeyedArchiver archiveRootObject:dataToStore toFile:path];

我是使用方法还是用字符串保存数组,它可以完美运行。关于我的自定义类,我应该更深入地研究什么?

问候

【问题讨论】:

你应该输入你的答案并选择正确,而不是把它和问题放在一起。 我已将其添加到文本中,但似乎找不到创建答案的方法 尝试阅读常见问题。它很容易回答;人们每天都这样做。 【参考方案1】:

我解决了这个问题,但是我只在评论中提供了解决方案,显然已被删除。所以我只想发布答案,表明这是一个菜鸟错误。 从以前的测试实现中,我在类中有以下方法

    - (id)copyWithZone:(NSZone *)zone

    return self;


//retain is counted up
- (id)retain 
    return self;


- (unsigned)retainCount 
    return UINT_MAX;

这些方法毁了我的保留计数 :)

【讨论】:

以上是关于ios NSKeyedArchiver 释放 = 错误访问的主要内容,如果未能解决你的问题,请参考以下文章

iOS NSKeyedArchiver(轻量级缓存)

iOS开发 - 数据归档与恢复 NSKeyedArchiver

NSKeyedArchiver.unarchiveObject Swift 3 iOS 10

iOS学习 --- iOS12对象序列化(NSKeyedArchiver/NSKeyedUnarchiver)

iOS学习 --- iOS12对象序列化(NSKeyedArchiver/NSKeyedUnarchiver)

iOS边练边学--应用数据存储的常用方式(plist,Preference,NSKeyedArchiver)其中的三种