storing [NSNull null] values in NSUserDefaults, from JSON serialization, causes unwanted exceptions

后端 未结 2 754
暖寄归人
暖寄归人 2020-12-10 07:50

I\'ve got an app where I use a JSON based API. As part of JSON, often values are set to \"null\". This may be common:

{\"data\":[\"one\",\"two\",\"three\"]         


        
2条回答
  •  一生所求
    2020-12-10 08:44

    You can first convert your NSDictionary to NSData, then safely store in NSUserDefaults (since NSNull conforms to NSCoding).

    //archive
    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dictionary];
    [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"key"];
    
    //unarchive
    NSData *newData = [[NSUserDefaults standardUserDefaults] objectForKey:@"key"];
    NSDictionary *newDict = [NSKeyedUnarchiver unarchiveObjectWithData:newData];
    

    Edit: Original data object was being referenced instead of newData object.

提交回复
热议问题