如何在 iOS 中从 .plist 添加和获取值

Posted

技术标签:

【中文标题】如何在 iOS 中从 .plist 添加和获取值【英文标题】:How to add and get the values from .plist in iOS 【发布时间】:2010-10-13 08:26:56 【问题描述】:

我正在实现一个基于 Web 服务的应用程序。我需要在 .plist 中添加一个字符串作为属性,并且我需要在代码中需要时从 .plist 中获取值。

【问题讨论】:

getting data from plist to NSMutableArray and writing the NSMutableArray to same plist iPhone的可能重复 【参考方案1】:

这是一个代码示例:

NSString *path = [[NSBundle mainBundle] pathForResource: @"YourPLIST" ofType: @"plist"]; 
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path];
id obj = [dict objectForKey: @"YourKey"];

【讨论】:

您好,我的路径为空,您能帮帮我吗 你的plist文件必须添加到项目中,然后你必须在上面的代码中设置它的确切名称(包括大小写)。 @BenC.R.Leggiero 一旦你执行了第二行,你就有了一个普通的NSDictionary,你可以将它用作任何其他字典。【参考方案2】:
NSBundle* mainBundle = [NSBundle mainBundle]; 

 

// Reads the value of the custom key I added to the Info.plist
NSString *value = [mainBundle objectForInfoDictionaryKey:@"key"];

//Log the value
NSLog(@"Value = %@", value);

// Get the value for the "Bundle version" from the Info.plist
[mainBundle objectForInfoDictionaryKey:@"CFBundleVersion"];

// Get the bundle identifier
[mainBundle bundleIdentifier];

【讨论】:

【参考方案3】:
NSURL *url = [[NSBundle mainBundle] URLForResource:@"YOURPLIST" withExtension:@"plist"];
NSArray *playDictionariesArray = [[NSArray alloc ] initWithContentsOfURL:url];

NSLog(@"Here is the Dict %@",playDictionariesArray);

或者你也可以使用下面的

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Sample.plist"];

【讨论】:

【参考方案4】:

从 plist 中获取非常简单。

NSString *path = [[NSBundle mainBundle] pathForResource:@"SaveTags" ofType:@"plist"];
if (path) 
    NSDictionary *root = [NSDictionary dictionaryWithContentsOfFile:path];

如果你想在 plist 中添加一些东西,也许你可以在这里找到答案: How to write data in plist?

但是如果你只想在你的应用中保存一些消息,NSUserDefaults 是更好的方法。

【讨论】:

【参考方案5】:

你不能这样做。任何捆绑包,无论是 ios 还是 Mac OS 都是只读的,您只能读取它,并且不能创建文件、写入或对捆绑包中的文件执行任何操作。这是苹果安全功能的一部分。您可以使用 NSDocumentsDirectory 来编写和阅读您的应用所需的内容

【讨论】:

以上是关于如何在 iOS 中从 .plist 添加和获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 的 info.plist 中添加属性

如何在 iOS 的 info.plist 中添加属性

如何在swift ios中从移动网络获取纬度和经度[关闭]

如何在 iOS 中从 Evernote 笔记中获取文本

如何在 iOS 应用程序中从蓝牙 LE 设备获取通知

如何从 iOS 单元测试中获取不同的 info-plist?