0

我正在编写一个 iPhone 应用程序,我在本地Supporting Files文件夹中下载了文件和照片(在 xcode 的右侧面板中),这些文件也在 Web 服务器中下载,我想要的是,如果应用程序检测到这些文件已更新在网络服务器中,它用Supporting Files我使用 的新内容替换它们

NSArray* pathArray = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory,NSUserDomainMask, YES);  
documentsDirectory = [pathArray objectAtIndex:0];
NSString* localFile = [documentsDirectory stringByAppendingPathComponent:@"test.txt"];
[data writeToFile:localFile options:NSDataWritingAtomic  error:&error];

该代码运行良好,但问题是它替换了文件
Library/Application Support夹中文件的内容,而不是Supporting Files 当我这样做时:

NSBundle *thisBundle = [NSBundle mainBundle];
NSString *TextURL = [thisBundle pathForResource:@"test" ofType:@"txt"];
NSURL *instructionsURL = [NSURL fileURLWithPath:TextURL];
NSString *TextString = [NSString stringWithContentsOfURL:instructionsURL];
mayText.text = TextString;  

显示的是旧内容而不是更新的内容 每次更改应用程序支持文件时,如何更改代码以替换支持文件目录中的文件?这两个文件夹有什么区别?谢谢你。

4

1 回答 1

0

你不能。设备上的 iOS 应用程序已签名,更改捆绑包的内容会破坏该签名。由于所有由 Xcode 管理并添加到目标的文件都会进入捆绑包,因此不得更改它们。

而是将文件下载到沙盒目录,例如 Documents 并在那里访问它。

另请注意,Supporting Filesiin Xcode 不是一个目录,而是一个组。它只是将其内容分组到 Xcode 项目中,但不会在文件系统级别的目录中组织文件。

于 2013-05-16T15:02:26.850 回答