【问题标题】:I'm having file saving/loading issue in ios 5?我在 ios 5 中遇到文件保存/加载问题?
【发布时间】:2011-12-12 02:30:27
【问题描述】:

我有一个应该保存到文件并稍后加载的应用程序。现在,我在 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 语句(意味着它找不到我认为的文件)。

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

【问题讨论】:

  • 您确定目录存在吗?有时必须创建 Documents 目录。

标签: iphone file ios5 nsfilemanager save


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      对我的问题的评论是解决问题的方法,但由于我无法给他正确的答案,所以我将把他的答案写在这里: 你确定目录在那里吗?有时必须创建 Documents 目录。

      【讨论】:

        猜你喜欢
        • 2016-11-04
        • 2017-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-20
        • 1970-01-01
        • 2020-06-15
        • 1970-01-01
        相关资源
        最近更新 更多