zoukankan      html  css  js  c++  java
  • bug:[NSKeyedUnarchiver initForReadingWithData:]: data is NULL

    一,经历

    1.问题出在给NSMutableDictionary类型的字典设置内容上.

        [_dictRateApp setObject:[NSNumber numberWithBool:NO] forKey:IS_SHOW_ALERT];

    2.很纳闷,打印当前字典的时候,key 是正确的, value 也是 Bool 类型的, 可是设置内容的时候就是失败.

    3.很可能是字典是不可变字典造成的.追本溯源到字典的内容产生,是从偏好设置里面获取到的.

        NSMutableDictionary *dict = (NSMutableDictionary *)[[NSUserDefaults standardUserDefaults]objectForKey:RATE_ON_APP_STORE];

        _dictRateApp = dict;

    4.感觉没什么问题,参考了stackover 上的一个相似问题,我想起了可能是从偏好设置中取得的字典有问题.

    http://stackoverflow.com/questions/16928418/nskeyedunarchiver-initforreadingwithdata-data-is-null

    5.然后把字典重新开辟了一段内存,避开了偏好设置返回的字典,就一切 ok 了.

        NSMutableDictionary *dictUserDefault = (NSMutableDictionary *)[[NSUserDefaults standardUserDefaults]objectForKey:RATE_ON_APP_STORE];

        NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:dictUserDefault];

        _dictRateApp = dict;

    6.原因可能是偏好设置把可变字典存储成了不可变字典..

  • 相关阅读:
    android AndroidManifest.xml package名
    java 空字条串空判断 效率
    ant
    android post 提交数据
    BI 商务智能软件 数据分析
    swfupdate flash上传工具
    log4j 使用方法
    java vc vb 项目结构
    时间单位
    iphone命令行编译xcodebuild
  • 原文地址:https://www.cnblogs.com/lz465350/p/5604301.html
Copyright © 2011-2022 走看看