核心數據是要走的路,但學習曲線陡峭。你應該花一些時間來學習它。
爲了您的目的,更容易,也許足夠的是與plists合作。這些是蘋果特定的XML文件,結構非常簡單。你可以在Xcode中編輯它們,格式非常透明。
然後,您可以從plist中一次加載所有數據,並根據第一個選項填充第二個選擇器。
或者,您可以使用JSON文件。這些更簡單,作爲一個網絡程序員,你可能對這些很熟悉。
一些提示:
你的數據應該有這樣的結構:字典的數組;每個字典都有一個關鍵品牌和一個另一個陣列,一個模型列表。這個子數組是一個帶有名字鍵的字典(如果你在你的應用程序中需要它,也許更多)。
您可以載入名爲「Data.plist」像這樣的plist文件(JSON是模擬):
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
NSArray *data = [NSArray arrayWithContentsOfFile:path];
現在,你可以得到這樣的品牌(假設你的品牌名稱關鍵字的列表是「名「):
NSArray *brands = [data valueForKeyPath:@"name"];
而對於一個品牌的品牌名單:
NSArray *models = [[[data filteredArrayUsingPredicate:[NSPredicate
predicateWithFormat:@"name = %@", @"Ford"]] objectAtIndex:0]
valueForKey:@"models"]);
反應到選擇的第一圓周率cker視圖,請確保您的視圖控制器是選取器視圖的代表並覆蓋pickerView:didSelectRow:inComponent:
。
您可以通過分配tags
並在回調方法中檢查它們來區分這些委託方法中的選擇器。
這是你的plist strucure的例子:
<?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>Ford</string>
<key>models</key>
<array>
<string>Mustang</string>
<string>Capri</string>
</array>
</dict>
<dict>
<key>name</key>
<string>VW</string>
<key>models</key>
<array>
<string>Polo</string>
<string>Golf</string>
</array>
</dict>
</array>
</plist>
希望這有助於。
顯示你目前有什麼。這聽起來像你可以使用.plist,並根據你的第一個選擇設置第二個選擇器視圖的數據源數組。 – Dustin 2012-08-09 15:49:59
我只有兩個PickerViews被設置爲單擊按鈕時顯示(作爲HTML中的選擇),當您在其他地方單擊時,它被隱藏。但是我仍然可以將所有模型放在同一個陣列中嗎?我如何知道它連接的品牌?我的意思是像一個外鍵或如此:)我知道非常基本plist的,所以如果這是我可以使用的,那會很棒! – Michael 2012-08-09 15:55:42