为啥我的 App 找不到我的 plist 文件?

Posted

技术标签:

【中文标题】为啥我的 App 找不到我的 plist 文件?【英文标题】:Why can't my App find my plist file?为什么我的 App 找不到我的 plist 文件? 【发布时间】:2014-11-30 02:39:16 【问题描述】:

这是我在这里发布的第一个问题,我对此很陌生,所以要温柔。 :-)

我使用的是 Xcode 6.1

我的项目显示这些文件夹:

待办事项列表 待办事项列表测试 构架 产品

![在此处输入图片描述][1]

我使用 File->New->ios/Resource->Property List 手动创建了一个 plist 文件并将其命名为 ToDoListData.plist

plist 位于包含我的源文件的 ToDoList 文件夹中。

![在此处输入图片描述][2]

我正在使用此代码将文件读入一个名为 toDoItems 的 NSMutableArray,但有两个问题。

    在 Xcode 中找不到 plist 文件 ->,我需要将 plist 放在哪里/哪个文件夹,以便它最终在模拟器的文档文件夹中以便可以找到它?

    toDoItems 变量未使用 - 不知道为什么,因为我认为代码应该将 plist 中的值读入可变数组 toDoItems

希望我能够清楚地传达问题。 (我已经卡了 4 个小时了)

感谢您的帮助。

- (void)loadInitialData


//    JNMToDoItem *item1 = [[JNMToDoItem alloc] init];
//    item1.itemName = @"Buy milk";
//    [self.toDoItems addObject:item1];
//
//    JNMToDoItem *item2 = [[JNMToDoItem alloc] init];
//    item2.itemName = @"Buy eggs";
//    [self.toDoItems addObject:item2];
//    
//    JNMToDoItem *item3 = [[JNMToDoItem alloc] init];
//    item3.itemName = @"Read a book";
//    [self.toDoItems addObject:item3];


    [self loadData];







-(void)loadData


    NSString *plistPath = [self getFilePath];

    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:plistPath];

    NSLog(@"Does the file exist?: %@", @(fileExists));


    if(fileExists)
    

        NSLog(@"The value of the path is: %@",plistPath);

        NSMutableArray *toDoItems = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
    else
        NSLog(@"File does not exist");
    






-(NSString *)getFilePath


    NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"ToDoListData.plist"];


【问题讨论】:

提示:1)您的文件不在文档目录中/它在其他地方,请检查路径 2)您刚刚声明了 toDoItems,没有在任何地方使用过 【参考方案1】:

将 plist 文件拖到 XCode 中的项目中。然后它会出现一个屏幕,询问您是否要复制项目以及要选择的目标。确保选择“如果需要,复制项目”并在“目标”下勾选您的项目。

这样的话,应该可以在代码中找到。

【讨论】:

Xcode 现在找到了 plist,但说它无法读取,因为它的格式错误....希望我可以发布图片,原因非常简单,只有 4 个字符串的数组。我将文件从Xcode拖到桌面,在Xcode中删除文件,然后将其拖回项目中......现在文件无法打开? ToDoListData.plist” 无法复制到“ToDoList”,因为已存在同名项目。该文件在 Xcode 中不可见,不知道如何查找和删除它。 啊,伙计,你还没有很好地解释你的问题,所以我不能为你做太多(因此它有-4评级)。对不起,伙计。 您确实提供了帮助,因为按照您的说明进行操作后,它可以找到文件,只是无法读取。然后我尝试从项目中删除该文件,它询问是发送到垃圾箱还是删除引用。我想我应该说删除参考时说要发送到垃圾箱。现在我不知道如何删除对 ToDoData.plist 的引用,因为我找不到它,所以我可以重新添加它。

以上是关于为啥我的 App 找不到我的 plist 文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 create-react-app 找不到我的 Sass 变量

在我的开发环境中找不到 Plist 文件

为啥我的解决方案找不到 json.net

在我的 XCode 项目中找不到 Cordova.plist

在 xcode 4 中找不到 info.plist

为啥找不到我的 json 文件?