我有一个数组,我将其序列化,加密然后写入文件。数据本身似乎很好但我在从文件恢复数组时遇到问题。这是我做的事情
NSString *filename = [[self getTransactionLogPath] stringByAppendingPathComponent:transactionLogName]; NSData *data = [[NSData alloc] initWithContentsOfFile:filename]; NSLog(@"encrypted data: %@", data); EncryptedData *decoder = [[EncryptedData alloc] init]; NSData *decrypted = [decoder reverseTransformedValue:data]; NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:decrypted];
我获取文件名并从文件中读取数据。 EncryptedData解码器在数据上运行AES128,最后我取消归档数组。
问题是unarchiveObjectWithData抛出异常
[NSKeyedUnarchiver initForReadingWithData:]:
难以理解的存档
棘手的是,如果我保留NSLog行,代码在模拟器中工作正常,即我在读取文件后打印出数据。
在设备上,NSLog()
无效。这是unarchiver在读取数据之前启动的线程问题吗?
我尝试添加延迟而不是NSLog()行,但这没有帮助。
如果我想在写入文件之前加密数组,还有其他方法可以完成这项工作吗?