我们如何在 Xcode 项目中创建自己的 plist 文件?

Posted

技术标签:

【中文标题】我们如何在 Xcode 项目中创建自己的 plist 文件?【英文标题】:How can we create our own plist file in a Xcode project? 【发布时间】:2011-05-02 05:29:28 【问题描述】:

我想在我的应用程序中创建“UrlPaths.plist”文件以及包含 4 或 5 个对象的字典。请帮我创建一个 plist 文件和字典。并从该 plist 文件中读取数据。

我希望 plist 将文件添加到资源文件夹,并且当时我也想添加 Dictionary。我不想务实地创建 plist,但我希望读取数据是务实的。

【问题讨论】:

【参考方案1】:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"plist.plist"]; 
NSFileManager *fileManager = [NSFileManager defaultManager];

NSMutableDictionary *data;

if ([fileManager fileExistsAtPath: path]) 
            data = [[NSMutableDictionary alloc] initWithContentsOfFile:path];

else 
    // If the file doesn’t exist, create an empty dictionary
    data = [[NSMutableDictionary alloc] init];


//To insert the data into the plist
data[@"value"] = @(5);
[data writeToFile: path atomically:YES];
[data release];

//To retrieve the data from the plist
NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
int value1;
value1 = [savedStock[@"value"] intValue];
NSLog(@"%i",value1);
[savedStock release];

【讨论】:

【参考方案2】:

如果您要在没有编程的情况下创建 Plist,请按照以下步骤操作:

1. Right Click on Files in Left Pane and Select 'New File...' option.
2. Choose Resources from OS X tab.
3. An option for Property List is available.
4. Select an give an appropriate name.

这将添加到您的项目中。

【讨论】:

【参考方案3】:

下面我们可以对plist有一个简单的了解

现在您可以读取以下数据

NSString *path = [[NSBundle mainBundle] pathForResource:@"Priority" ofType:@"plist"];
NSDictionary *dictPri = [NSDictionary dictionaryWithContentsOfFile:path];//mm
NSMutableArray *arrMarkets=[[NSMutableArray alloc] initWithArray:[dictPri valueForKey:@"List"]];
NSMutableArray *arrForTable=[[NSMutableArray alloc] init];
NSMutableArray *arrForTable1=[[NSMutableArray alloc] init];
for (NSDictionary *dict in arrMarkets)

    NSString *strS1=nil;
    strS1= [NSString stringWithFormat:@"%@",[dict valueForKey:@"Description"] ];
    [arrForTable addObject:strS1];

NSLog(@"%@----------------- ",[arrForTable description]);
for (NSDictionary *dict in arrMarkets)

    NSString *strS2=nil;
    strS2= [NSString stringWithFormat:@"%@",[dict valueForKey:@"Name"] ];
    [arrForTable1 addObject:strS2];
    
NSLog(@"%@----------------- ",[arrForTable1 description]);

【讨论】:

【参考方案4】:

创建新的 plist 文件 -

NSArray *Arr = [NSArray arrayWithObjects:obj1,obj2,nil];
        NSData *data = [NSPropertyListSerialization dataFromPropertyList:Arr  format:NSPropertyListXMLFormat_v1_0  errorDescription:nil];

     [data writeToFile:PlistDataFilePath atomically:YES];

从此 plist 文件中读取数据 -

NSData *data = [NSData dataWithContentsOfFile:PlistDataFilePath];
NSPropertyListFormat format;
NSArray *array = [NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListImmutable format:&format errorDescription:nil];

你应该在 plist 文件上阅读这篇很棒的 tut - http://www.edumobile.org/iphone/iphone-programming-tutorials/how-to-use-plist-in-iphone/

【讨论】:

以上是关于我们如何在 Xcode 项目中创建自己的 plist 文件?的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 4.3 中创建没有情节提要的项目

在 Xcode 8.2.1 中创建 Xcode 项目模板

如何在 Xcode 中创建一个新的 C++ 项目?

如何让用户在核心数据xcode中创建自己的属性

如何在 XCode 中创建 C++ 控制台/终端项目?

XCode 5:如何在工作区中创建多个项目?