如何在 xcode 4.3.2 中创建 plist 文件
Posted
技术标签:
【中文标题】如何在 xcode 4.3.2 中创建 plist 文件【英文标题】:how to create plist file in xcode 4.3.2 【发布时间】:2012-04-02 22:43:20 【问题描述】:我正在尝试创建自己的 plist 文件以在我的应用程序中使用,我使用苹果 documents 作为这样做的参考。
但是,我已经读到,如果您创建自己的 plist,则需要将其放在应用程序构建的资源文件夹中。问题是我的构建中没有资源文件夹......所以我很困惑我应该怎么做?..我已经阅读了这个人的回答here,他说只需将 plist 文件放在支持 Files 文件夹.. 关于允许读取和写入 plist 是否可以这样做?
【问题讨论】:
一旦应用程序包安装在设备上,您将无法写入。安装应用程序后,您需要将其复制到应用程序沙箱中,然后您可以从那里读取和写入。就 xcode 项目而言,您几乎可以将文件放在任何您想要的地方 【参考方案1】:读取和写入 plist 的最佳做法是将其复制到文档根目录,如果您想通过没有写入权限的捆绑包访问它。我在这里提供了代码的快照以及如何完成此操作。
NSError *err;
NSFileManager *fileManager = [NSFileManager defaultManager];
//getting the path to document directory for the file
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [paths objectAtIndex:0];
NSString *path = [documentDir stringByAppendingPathComponent:@"YourFile.plist"];
//checking to see of the file already exist
if(![fileManager fileExistsAtPath:path])
//if doesnt exist get the the file path from bindle
NSString *correctPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"YourFile.plist"];
//copy the file from bundle to document dir
[fileManager copyItemAtPath:correctPath toPath:path error:&err];
【讨论】:
好的,谢谢,我想我之前找到了一个与此非常相似的教程。我正在考虑有一个控制器类来为我完成所有 plist 的工作,所以当我需要给它写一些东西时,我可以调用我需要的类方法。等等……你认为这是个好主意吗? 是的,这是一个很好的做法,它会处理代码重复,如果您需要这方面的帮助,我可以向您展示我创建的用于读取和写入 plist 的类? 您是否相信我已经设法按照教程进行操作,并且我已将所有内容都启动并运行得非常好..但是我现在正在尝试将字典添加到 plist 的根字典中.. 而不是确定如何设置值等。我在这里有一个问题,你可能可以帮助我。:P ***.com/questions/10003856/…【参考方案2】:您可以将该 plist 文件放在您想要的任何位置。
重要的是将它复制到包中。所以为了确保检查
project settings>build phases>copy bundle resources
您可以通过在项目导航器中左键单击您的项目来打开项目设置。
【讨论】:
很酷,感谢您的快速回复.. 好的,我现在明白了.. 我已经准备好它需要包含在捆绑包中,但不是 100% 包含或不包含在其中..以上是关于如何在 xcode 4.3.2 中创建 plist 文件的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Xcode 项目中创建自己的 plist 文件?
在 Xcode 9.3 中创建的新文件 <wsname>.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist 是不是应该提交?