无法使用stringByAppendingPathComponent创建文件

时间:2012-05-09 16:58:11

标签: iphone

此代码在我的应用程序中一直运行到昨天:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *applicationDocDirectory = [paths objectAtIndex:0];
        NSLog(@"%@", applicationDocDirectory);
        NSString *tempFilePath = [applicationDocDirectory stringByAppendingPathComponent:@"temp.txt"];  

    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL success = [fileManager fileExistsAtPath:tempFilePath];

我继续得到Cocoa错误代码4,我的文件在路径中不存在。我检查了路径,路径是正确的。是否有任何明显的原因导致此代码停止工作?我尝试清理,从模拟器或设备上删除我的应用程序并将其修复了一段时间,但之后它就停止了工作。不确定还有什么可能导致这个问题。感谢。

1 个答案:

答案 0 :(得分:1)

您无法使用-stringByAppendingPathComponent创建文件。这会创建一个自动释放的NSString对象。

如果这已经有效,那么“temp.txt”必须已经存在。

要创建可以使用的文件:

- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)contents attributes:(NSDictionary *)attributes

要从NSString创建文件,您可以使用:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error