我在ios 5中有文件保存/加载问题?

时间:2011-10-20 20:14:19

标签: iphone file ios5 nsfilemanager save

我有一个应该保存到文件然后加载它的应用程序。现在,我没有在ios 4上遇到任何问题,所以这很令人困惑。这在我的所有应用程序保存和加载时都发生了。 下面是代码:

- (NSString *)pathOfFile{  
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsFolder = [paths objectAtIndex:0];  
    return [documentsFolder stringByAppendingFormat:@"awesome.plist"];  
}  

稍后在应用程序中...

[array writeToFile:[self pathOfFile] atomically:YES];  

然后当我尝试加载它时......

if ([[NSFileManager defaultManager] fileExistsAtPath:[self pathOfFile]]) {  
    NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:filepath];  
    achi.text = [array objectAtIndex:0];  
}  

我的应用实际上只是跳过了if语句(意思是它找不到我认为的文件)。

请帮忙,如果您有不同的保存文件的方法,我很高兴听到他们的意见。

3 个答案:

答案 0 :(得分:2)

您的- (NSString *)pathOfFile方法错误。它应该是:

- (NSString *)pathOfFile
{  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsFolder = [paths objectAtIndex:0];  
    return [documentsFolder stringByAppendingPathComponent:@"awesome.plist"];  
}

答案 1 :(得分:0)

-(NSString *)pathOfFile方法中,请勿使用stringByAppendingFormat:。使用文件路径时,您应该使用stringByAppendingPathComponent:,因为它将确保添加(或删除,如果有太多)适当的斜杠字符:

return [documentsFolder stringByAppendingPathComponent:@"awesome.plist"]; 

答案 2 :(得分:0)

对我的问题的评论是什么解决了问题,但由于我不能给他正确的答案,我只是写下他的答案: 你确定目录在那里吗?有时必须创建Documents目录。