Xcode tvOS-错误:您无权将文件“ fileName.txt”保存在“文档”文件夹中]

问题描述 投票:0回答:1

我在Objective-C中有一个Xcode tvOS项目。我正在尝试使用以下代码将示例fileName.txt文件保存到Documents文件夹中:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [self applicationDocumentsDirectory];

    NSString *path = [[self applicationDocumentsDirectory].relativePath
                           stringByAppendingPathComponent:@"fileName.txt"];
    NSString* sampleText = @"Prova";
    NSError* err;
    [sampleText writeToFile:path atomically:YES
                           encoding:NSUTF8StringEncoding error:&err];
    if(err != nil) {
        NSLog(@"Error: %@", [err localizedDescription]);
    }
}

/**
 Returns the URL to the application's Documents directory.
 */
- (NSURL *)applicationDocumentsDirectory {
    NSLog(@"%@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory
    inDomains:NSUserDomainMask] lastObject]);
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory
         inDomains:NSUserDomainMask] lastObject];
}


@end

但是运行应用程序时出现此错误:错误:您无权将文件“ fileName.txt”保存在“文档”文件夹中。

在iOS中,它可以代替。

objective-c xcode tvos
1个回答
0
投票

您无权访问tvOS上的文档。

这里来自苹果公司(有关详细信息,请参见here:]:

您的应用程序的本地存储受到限制

  • tvOS应用程序捆绑包的最大大小为4 GB。而且,您的应用程序可以仅访问设备本地的500 KB持久存储(使用NSUserDefaults类)。在这个有限的本地人之外存储时,操作系统必须清除所有其他数据空间不足。您可以选择几种方法来管理这些资源:
  • 您的应用程序可以在iCloud中存储和检索用户数据。您的应用可以将所需的数据下载到其缓存目录中。资料下载在应用运行时不会被删除。但是,当空间不足时并且您的应用未运行,则该数据可能会被删除。请勿使用整个缓存空间,因为这可能导致不可预测的结果。
  • 您的应用可以使用按需资源打包只读资产。然后,在运行时,您的应用会请求所需的资源以及系统会自动下载并管理这些资源。会心在保持用户参与度的同时,如何以及何时加载新资产是对于创建成功的应用程序至关重要。有关按需的信息资源,请参阅《按需资源指南》。这意味着每个应用为新的Apple TV开发的软件必须能够在iCloud中存储数据并以提供良好客户体验的方式进行检索。
© www.soinside.com 2019 - 2024. All rights reserved.