我在iOS应用程序的.app包中保存了一些运行时生成的文件。在模拟器中它工作正常,在它崩溃的设备中:
可以在给定的着色器缓存路径中创建输出文件 “/var/mobile/Applications/CB064997-B40E-4FE3-9834-B3217CE33489/SimedTest.app/Ogre3D/assets/RTShaderLib/cache /
是否可以很好地概述我应该放置文件的位置 - 如何使用Documents,Library和tmp等?
为了澄清,这些是在启动时创建的文件,它们预先计算一些数据以节省时间。如果他们不在场,他们就会被创建,所以删除它们很好,但在应用程序运行时则不行。
答案 0 :(得分:17)
捆绑包是只读的。你不想乱用它有两个原因:
你应该保存的东西:
要获得完整说明,请查看File System Programming Guide和QA1719。
答案 1 :(得分:4)
不,每次更换捆绑包时,您的签名都会失效。
如果你想写文件,你需要写在最好的文件夹中,具体取决于你想用这个文件做什么。
修改强>
要获得path
你需要这样的东西:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"filename.ext"];
使用此path
,您可以这样写或读:
写:
NSString *content = @"One\nTwo\nThree\nFour\nFive";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];
阅读:
NSString *content = [[NSString alloc] initWithContentsOfFile:fileName usedEncoding:nil error:nil];