iOS7和iOS8中[NSMutableString writeToFile]的不同行为

时间:2014-08-18 08:27:35

标签: file ios7 xcode5 ios8 nsmutablestring

这里我有将NSMutableString保存到File(FileName.dat)

的演示代码
NSError* error = nil;
NSMutableString* dat = [[NSMutableString alloc] initWithCapacity:1];
BOOL result = [dat writeToFile:@"FileName.dat" atomically:YES encoding:NSUTF8StringEncoding error:&error];

但我在iOS7和iOS8beta5中输出了两个不同的输出

输出XCode5 + iOS7 enter image description here

输出XCode5 + iOS8 enter image description here

<小时/> 虽然running it in iOS7显示error in parsing file path, 但在iOS8beta5 it崩溃时说[NSFileManager fileSystemRepresentationWithPath:] have nil or empty path
问题:
在SDK iOS8和iOS7中,它以NSError作为参数来返回错误,因此我认为它应该返回错误而不是崩溃应用程序
苹果大厦是否有任何变化,如果是,那么请给我参考链接。

2 个答案:

答案 0 :(得分:2)

您传递给[NSData writeToFile:atomically:]的路径不完整,应该是完整路径。

通常通过获取Documents文件夹的路径并附加该文件名来完成。

答案 1 :(得分:2)

问题是您的文件名@"FileName.dat",没有要保存的目录的路径。 NSFileManager本身不会这样做,您需要正常保存到Documents文件夹。这是我经常使用的代码:

[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAppendingPathComponent:myFileName];