Iphone 应用程序启动中的读写ios问题
我在mainbundle中添加了文本文件,并在其上写了一行代码来控制应用程序的打开,如下所示Iphone 应用程序启动中的读写ios问题,iphone,objective-c,Iphone,Objective C,我在mainbundle中添加了文本文件,并在其上写了一行代码来控制应用程序的打开,如下所示 NSString *fileName = [[NSBundle mainBundle] pathForResource:@"TestCases" ofType:@"txt"]; NSString *content = [[NSString alloc] initWithContentsOfFile:fileName
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将返回否,这正是您需要的。