我有一个应该保存到文件然后加载它的应用程序。现在,我没有在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语句(意思是它找不到我认为的文件)。
请帮忙,如果您有不同的保存文件的方法,我很高兴听到他们的意见。
答案 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目录。