ios - 在ios上写:文件不出现

标签 ios

我想将一些值写入外部文件,并为此目的使用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/

相关文章:

iphone - 如何在cocos2d中添加Action到Button

ios - 无法将 UITableView 添加到 UIView swift

ios - 如何使用 Swift 泛型传递类型并返回该类型的对象?

ios - 从其他类调用方法(自身问题)

ios - Swift 静态表格单元格页脚文本

ios - 核心剧情: doxygen config file does not exist

ios - Swift、Firebase - 将 CMSampleBufferRef 与相机的实时馈送一起使用

ios - 使用自定义动画呈现嵌入导航 Controller 中的 View Controller

ios - 上边距(自动布局)

ios - 如何在 moya swift 中添加进度 View ?