正确组织Plist中的数据

时间:2013-03-24 21:10:24

标签: xcode dictionary plist

我的智慧结束了,请帮助我美丽的人!!

我的难题是:

我列出了100种药物。每个都有一个名称,每个名称都有一个与之关联的URL,每个名称都在1-8的部分中。我需要在表格视图中创建药物名称列表。选择特定药物时,药品名称,药品部分及其URL需要传递给另一个视图控制器。

我知道如何实现所有的gubbins传递到另一个控制器,设置表视图等我只是不知道如何组织plist文件中的数据,以便它可以在程序中访问,以及如何保持每个药物链接到它的URL和部分。

有什么想法吗?我一直在乱用字典,数组和对象,现在已经过了7个小时。我想如果我不快点的话,我可能会哭!

非常感谢,

1 个答案:

答案 0 :(得分:0)

以下是如何操作:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
   <dict>
     <key>name</key><string>Drug name</string>
     <key>url</key> <string>http://www.urltodrug.com/Drug%20name</string>
     <key>section</key> <integer>5</integer>
   </dict>
</array>
</plist>

只需添加更多<dict>即可。

将all放入数组:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Drugs" ofType:@"plist"]; 
self.dataArray = [NSArray arrayWithContentsOfFile:path]; 

按部分和药物名称对数组进行排序:

NSArray *sortedArray = [self.dataArray sortedArrayUsingSortDescriptors:@[
    [NSSortDescriptor sortDescriptorWithKey:@"section" ascending:YES],
    [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]
]];

要将数组缩小为仅显示名称:

NSArray *namesArray = [sortedArray valueForKeyPath:@"name"]; 

欢迎使用NSDictionary和“键值编码”的力量!

要在单元格中显示名称:

NSDictionary *dataDict = [self.dataArray objectAtIndex:indexPath.row];
cell.textLabel.text = [dataDict objectForKey:@"name"]; 
相关问题