我想将一些值写入外部文件,并为此目的使用NSDictionary:
NSString *s = @"123456";
NSString *key = @"key";
NSString *file = pathInAppDirectory(@"values");
NSDictionary *dic = [NSDictionary dictionaryWithObject:s forKey:key];
[dic writeToFile:file atomically:YES];
好的,pathInAppDirectory看起来像这样:
NSString *pathInAppDirectory(NSString *fileName)
{
NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES);
NSString *appDir = [documentDirectories objectAtIndex:0];
return [appDir stringByAppendingPathComponent:fileName];
}
发生的一切完全没有:如果我想稍后再查看文件并显示值,则返回null。再看一下iPhone模拟器的文件夹,也会显示一个空文件夹。那里发生了什么,或更具体地说:什么没有发生?
最佳答案
您需要使用NSDocumentDirectory
而不是NSApplicationDirectory
。无法写入应用程序捆绑包。
清理示例:
- (NSString *)pathInAppDirectory:(NSString *)fileName {
NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *appDir = [documentDirectories objectAtIndex:0];
return [appDir stringByAppendingPathComponent:fileName];
}
NSString *s = @"123456";
NSString *key = @"key";
NSDictionary *dic = [NSDictionary dictionaryWithObject:s forKey:key];
NSString *filePath = [self pathInAppDirectory:@"values"];
[dic writeToFile:filePath atomically:YES];
关于ios - 在ios上写:文件不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272427/