【问题标题】:Save a file on device that will survive uninstallation在设备上保存一个可以在卸载后继续存在的文件
【发布时间】:2011-12-24 06:57:46
【问题描述】:

我想在我的 iPhone 应用程序中保存一个 .txt 文件,但我希望它保留下来,这样即使应用程序被卸载并重新安装,我仍然可以访问它。

我曾尝试将文件保存在 iPhone 的硬盘上,但始终无法使用。

这适用于模拟器:

NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];


//NSString *dataFile= @"/Users/rajesh/Library/Application Support/iPhone Simulator/4.2/tmp/myfile.dat"; //on simulator
NSData *databuffer;
databuffer = [textBox.text dataUsingEncoding: NSASCIIStringEncoding];
[filemgr createFileAtPath: dataFile contents: databuffer attributes:nil];
[filemgr release];

我在设备上使用它:

NSString *dataFile= @"/var/mobile/Applications/temp/myfile.dat"; //on device

但它不起作用。

【问题讨论】:

    标签: objective-c ios cocoa-touch nsfilemanager file-management


    【解决方案1】:

    没有办法这样做,因为所有文件都在沙箱中,而沙箱是您应用程序的一部分,您无法在沙箱之外写入文件。

    您可以尝试将文件保存在钥匙串中(肮脏的黑客)或通过 iCloud 存储。

    【讨论】:

    • 如果可以,我们可以使用 kaychain 或 icloud 进行此操作,那么请告诉我方法,因为我以前从未这样做过,如果我们这样做了,请告诉我文件保存的确切存储位置。 . 谢谢..
    • 谢谢我读了一分钟,但使用 icloud,设备必须在那里注册才能访问数据,但我不知道谁在使用我的应用程序。我会完整阅读它,但我认为我不会工作,所以如果有其他解决方案,请告诉我.. 谢谢
    • 嘿,我对 icloud 的使用感到非常兴奋,我开始阅读文档,但发现很难理解任何其他链接可以帮助我用简单的话理解......谢谢。
    【解决方案2】:

    无法通过写入共享文件夹来支持您的用例,因为 iOS 中没有这样的功能。但是,您的高级目标(即使文件被删除并重新安装后仍可供应用程序使用)可以使用 iCloud 提供服务,因此请查看通过 iCloud 同步文件。

    【讨论】:

    • 哦.. 谢谢,但是 iCloud 真的可以解决一个问题,因为我以前从未使用过这个,所以我不知道该怎么做.. 如果你知道,请告诉我我是如何做到的解决方案。还有一个问题,如果我们使用 iCloud,那么存储文件的实际位置是什么。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多