Objective C在iPhone上运行时无法读取文本文件

时间:2014-03-17 08:54:24

标签: objective-c

我做了一个依赖于读写plist文件的应用程序。当我在iPhone模拟器中运行应用程序时,这很有效,但是当我在iPhone上测试它时,它根本不起作用。我还制作了一个带有演示数据的.txt格式的预制文本文件。当我运行此文件时,该应用程序正常运行。

所有的阅读和写作都是在类似这样的课程中完成的:

    -(void)saveArray:(NSMutableArray *)inputArray
{
    albumArray = inputArray;
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentFolder = [path objectAtIndex:0];
    NSString *filePath = [documentFolder stringByAppendingFormat:@"albums.plist"];
    [albumArray writeToFile:filePath atomically:YES];
}

更新:更改了" stringByAppendingFormat"中的字符串to" stringByAppendingPathComponent"它现在似乎工作。非常感谢!你们做了我的一天。

2 个答案:

答案 0 :(得分:0)

检查plist名称的拼写以及大小写,设备对于文档是区分大小写的,但模拟器不是。还尝试从设备中删除应用程序并重新安装它?

writeToFile:atomically:返回一个bool,所以请检查它是否甚至无法写入路径。检查文件路径字符串,确保它是您想要的位置。

答案 1 :(得分:0)

您确定文件夹已存在吗? 这是我用来获取文件路径的函数:

- (NSString*) pathToSavedAlbums
{
    NSURL *applicationSupportURL = [self applicationDataDirectory];

    if (! [[NSFileManager defaultManager] fileExistsAtPath:[applicationSupportURL path]])
    {
        NSError *error = nil;
        [[NSFileManager defaultManager] createDirectoryAtPath:[applicationSupportURL path]
                                  withIntermediateDirectories:YES
                                                   attributes:nil
                                                        error:&error];
        if (error)
        {
            NSLog(@"error creating app support dir: %@", error);
        }
    }
    NSString *path = [[applicationSupportURL path] stringByAppendingPathComponent:@"albums.plist"];

    return path;
}