从文件

时间:2015-10-27 09:41:15

标签: objective-c file encryption nsarray nsdata

我有一个数组,我将其序列化,加密然后写入文件。数据本身似乎很好但我在从文件恢复数组时遇到问题。这是我做的事情

    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()行,但这没有帮助。

如果我想在写入文件之前加密数组,还有其他方法可以完成这项工作吗?

0 个答案:

没有答案