分发时可可保存文本文件

时间:2013-04-03 15:08:14

标签: objective-c macos cocoa

在我设计的应用程序中,我有几个文本字段,当应用程序关闭时,每个文本字段都保存为.txt文件,然后在应用程序打开时回读;然而,当我尝试分发应用程序(只是将其作为应用程序导出并将其发送给某些朋友)时,我发送给它的人没有我保存到的文件位置。在他们的计算机上,所以文本字段不会保存。有没有办法在应用下载时在他们的计算机上创建.txt文件?或者在分发时有比保存.txt文件更好的方法吗?感谢。

2 个答案:

答案 0 :(得分:1)

我只是将最初的.txt文件打包到您的应用程序包中。检查用户的本地文件系统中是否存在该文件。如果没有,请将您的软件包的.txt文件读入字符串,然后将该字符串保存到用户的文件系统中的正确位置。

NSError *fileError = nil;
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
    //Read the file
    NSString *fileContents = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&fileError];
    if (fileError) {
        //Handle the error
    }
} else {
    NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"initialFile" ofType:@"txt"];
    NSString *initialFileContents = [[NSString alloc] initWithContentsOfFile:bundlePath encoding:NSUTF8StringEncoding error:&fileError];
    if (!fileError) {
        [initialFileContents writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&fileError];
        if (fileError) {
            //Handle the error
        }
    }
}

答案 1 :(得分:1)

为什么不直接使用NSUserDefaults并将(希望相当小)的文本存储在应用程序的首选项数据库中?它保证存在并且可以在不受沙箱限制或非标准存储位置影响的情况下访问。

除此之外,如果您想直接回答问题,则需要提供更多信息。具体来说,您正在使用的确切路径是什么以及您收到的确切错误是什么?为什么在运行时创建文件时需要捆绑空文本文件?