我正在实施基于Web服务的应用程序。在那里我需要在.plist中添加一个字符串作为属性,我需要在代码中随时获取.plist中的值。
答案 0 :(得分:36)
以下是代码示例:
NSString *path = [[NSBundle mainBundle] pathForResource: @"YourPLIST" ofType: @"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path];
id obj = [dict objectForKey: @"YourKey"];
答案 1 :(得分:18)
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];
答案 2 :(得分:6)
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"];
答案 3 :(得分:2)
从plist获取非常简单。
NSString *path = [[NSBundle mainBundle] pathForResource:@"SaveTags" ofType:@"plist"];
if (path) {
NSDictionary *root = [NSDictionary dictionaryWithContentsOfFile:path];
}
如果你想为plist添加一些东西,也许你可以在这里找到答案: How to write data in plist?
但如果您只想在应用中保存一些消息,NSUserDefaults是更好的方式。
答案 4 :(得分:0)
你不能这样做。任何Bundle,它是iOS或Mac OS只读,你只能读取它,你不能创建文件,写或对包中的文件做任何事情。这是苹果安全功能的一部分。您可以使用NSDocumentsDirectory来编写和阅读应用程序所需的内容