我的智慧结束了,请帮助我美丽的人!!
我的难题是:
我列出了100种药物。每个都有一个名称,每个名称都有一个与之关联的URL,每个名称都在1-8的部分中。我需要在表格视图中创建药物名称列表。选择特定药物时,药品名称,药品部分及其URL需要传递给另一个视图控制器。
我知道如何实现所有的gubbins传递到另一个控制器,设置表视图等我只是不知道如何组织plist文件中的数据,以便它可以在程序中访问,以及如何保持每个药物链接到它的URL和部分。
有什么想法吗?我一直在乱用字典,数组和对象,现在已经过了7个小时。我想如果我不快点的话,我可能会哭!
非常感谢,
露
答案 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"];