NSDictionary含有null导致writeToFile失败

之前保存NSDictionary的时候简单的都没有问题,在Block里面保存就会失败,查资料一直都以为是线程的问题,差点就跑去写进程锁了,今天重新试的时候才发现根本不是block导致的,而是NSDictionary里面包含了null的对象! 混蛋,官方不是说NSDictionary可以保存的么,怎么不顺便说下里面的object也要是

  • NSString
  • NSData
  • NSDate
  • NSNumber
  • NSArray
  • NSDictionary

之一,总之,要解决这个问题就只需要将NSDictionary->NSData再writeToFile就好了,读取的时候先读取NSData再NSData->NSDictionary,所用的函数为:

NSDictionary -> NSData:

NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:myDictionary];  

NSData -> NSDictionary:

NSDictionary *myDictionary = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:myData];