从文件恢复NSArray

我有一个数组,我序列化,加密,然后写入一个文件。 数据本身看起来不错,但是我遇到了从文件恢复数组的问题。 这是我做的

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

如果我想在写入文件之前加密数组,请使用其他任何方式来完成这项工作?

链接地址: http://www.djcxy.com/p/68339.html

上一篇: Restoring NSArray from file

下一篇: initWithData returns (null)