Iphone 应用程序启动中的读写ios问题

Iphone 应用程序启动中的读写ios问题,iphone,objective-c,Iphone,Objective C,我在mainbundle中添加了文本文件,并在其上写了一行代码来控制应用程序的打开,如下所示 NSString *fileName = [[NSBundle mainBundle] pathForResource:@"TestCases" ofType:@"txt"]; NSString *content = [[NSString alloc] initWithContentsOfFile:fileName

我在mainbundle中添加了文本文件,并在其上写了一行代码来控制应用程序的打开,如下所示

NSString *fileName =  [[NSBundle mainBundle] pathForResource:@"TestCases" ofType:@"txt"];

NSString *content = [[NSString alloc] initWithContentsOfFile:fileName
                                                usedEncoding:nil
                                                       error:nil];

if ([content length] == 0 ) {


    [self MoveAndBuild ];

}


content = @"Downloaded";
[content writeToFile:fileName 
          atomically:NO 
            encoding:NSStringEncodingConversionAllowLossy 
               error:nil];
支持的是[自动移动和构建];安装应用程序后只调用一次,但每次打开应用程序时都会调用,我是否遗漏了什么


最好的问候

应用程序包中的文件是只读的。我会在你的情况下使用默认值。例如

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
然后,您可以使用

BOOL downloaded = [prefs boolForKey:@"downloaded"]
并用

[prefs setBool:YES forKey:@"downloaded"];

应用程序包中的文件是只读的。我会在你的情况下使用默认值。例如

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
然后,您可以使用

BOOL downloaded = [prefs boolForKey:@"downloaded"]
并用

[prefs setBool:YES forKey:@"downloaded"];
将永远不会成功,因为文件名指向不可写的应用程序包。因此,您一直在针对同一个文件进行测试

如果您使用了正确的错误处理,您就会看到这一点

NSError *error;
if (![content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:&error]) {
    NSLog(@"Error writing - %@", error);
}
顺便说一句,
nsStringEncodingConversionLowlossy
不是有效的编码

将永远不会成功,因为文件名指向不可写的应用程序包。因此,您一直在针对同一个文件进行测试

如果您使用了正确的错误处理,您就会看到这一点

NSError *error;
if (![content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:&error]) {
    NSLog(@"Error writing - %@", error);
}

顺便说一句,
nsStringEncodingConversionLowlossy
不是有效的编码

您能告诉我更多详细信息吗,我将在哪里保存要检查的数据?这就是您所需要的,应该可以。更多信息此处开始时的默认值是什么如果找不到密钥,BoolWorkey将返回否,这是您所需要的。您可以告诉我更多详细信息,我将在哪里保存将被检查的数据吗?这就是您所需要的,应该可以。更多信息此处开始时的默认值是什么如果找不到密钥BoolWorkey将返回否,这正是您需要的。