NSKeyedArchiver可在模拟器上运行,但在tvOS设备上无法运行

时间:2019-01-26 09:06:33

标签: objective-c tvos nskeyedarchiver

我正在将对象归档到文件-在模拟器上它可以正常工作,但是在tvOS(Apple TV)设备上却不能(换句话说,-(BOOL)archiveRootObject:toFile:返回一个有趣的NO) :

static NSString * _DocumentsDirectory() {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES);
    return paths[0];
}

和:

NSString *fullPath = [_DocumentsDirectory() stringByAppendingPathComponent:filename];
[NSKeyedArchiver archiveRootObject:obj toFile:fullPath];

其中filename = @"foo.data"obj符合NSCoding

我尝试了不同的方法来组合路径和不同的目录,但是结果是相同的。 我唯一的想法是可能需要设置一些写作许可。

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

经过一番调查,我发现Apple允许您在tvOS应用程序中存储数据的唯一方法如下:

enter image description here

因此,我选择对最终可以重新下载的数据使用Cache目录(仅在需要空间时才清除),而对需要始终在本地访问的较小数据使用NSUserDefaults。