如果您想在模型對象之間建立關係,請遠離plists。
對於您的特定情況,您希望創建兩個實體及其各自的屬性:Weapon
和Attachment
。的關係如下圖所示:
武器< < - >>附件
附件< < - >>武器
所以在概念上你的武器,可以有許多附件和附件,可以是許多武器的一部分。
考慮到這一點,您可以使用您選擇的Weapon
實例填充數據庫,並且可以使用Attachment
執行相同的操作。
一旦這樣做了,你只需通過分配關係的附件武器(或通過反向關係附加武器附件)。
最後要回答你的問題,如果你想要一個用戶選擇一個特定的Weapon
實例,然後選擇它的附件,只要你已經有可供選擇的附件實例,這就像抓住對武器的引用一樣簡單實例,獲取所有附件並將其作爲選項呈現給用戶。
那些讓糾察隊被添加到關係中,你準備好了。
檢查由蘋果公司爲一些代碼,可以幫助你前進的道路上提供的配方例子。如果你想要去那麼簡單那就算了CoreData
[編輯,以解決下方的註釋]
。只需爲你的突擊步槍製作一個plist,並使用兩把鑰匙,一個用於突擊riffle名稱(NSString *),另一個用於附件(NSArray *),製作每個assalt riffles一個NSDictionary。舉例:
weapon1 {
name: @"Weapon name here"
attachments: [
item0: @"Attachment 1"
item1: @"Attachment 2"
item2: @"Attachment 3"
...
]
}
weapon2 {
... // Keep adding weapon names & attachments
}
然後你可以把武器1,武器2等放在一個NSArray中,將它們組合在一起。說上面的武器都是突擊步槍,所以這可能成爲你的AssaultRiffles plist,可以使用標準KVC方法加載和訪問。這裏有一個例子:
NSArray *weaponArray = // Method to load your plist here
for (NSDictionary *weapon in weaponArray)
{
NSString *weaponName = [weapon objectForKey:@"name"];
NSLog (@"weaponName is %@", weaponName);
}
如果你不想爲每種武器類型簡單的窩他們都聚集在根據自己的需要一個數據集分離的Plist - 它可以是一個數組或字典。
來源
2011-04-02 00:04:47
Rog
這不清楚你在這裏問什麼。 – Caleb 2011-04-02 00:04:08