为啥我的 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 变量