2012-06-10 49 views
0

可能重複:
How to populate a TableView with plist content using XCode and 4 storyboard如何使用的plist XCode中填充的iOS 4的TableView

我所做的這些步驟:

1:由tableviewcontroller (WinesViewController)

2:添加與標題&枯草原型細胞tle標籤:namelabel & districtlabel。小區標識符:wineCell

3:由具有10種葡萄酒(字典)的Wine.plist

詞典都含有18串具有字符串鍵(詞典鍵=酒的名稱):名稱,街道名稱,圖像,酒類等,還有一個叫價格與價格字符串的數組。

4:製造NSObject的的Wine.h/.M子類。該.H:

#import <Foundation/Foundation.h> 

@interface Wine : NSObject { 

    NSString *wineImage; 
    NSString *wineName; 
    NSString *wineDistrict; 
    NSString *wineCountry; 
    NSString *wineFlag; 
    NSString *wineFylde; 
    NSString *wineFriskhet; 
    NSString *wineGarvesyre; 
    NSString *wineColor; 
    NSString *wineSmell; 
    NSString *wineTaste; 
    NSString *wineSuits; 
    NSString *wineGrapes; 
    NSString *wineAlcohol; 
    NSString *wineSugar; 
    NSString *wineAcid; 
    NSString *wineProducer; 
    NSMutableArray *winePrice; 
    NSString *wineFact; 
} 

@property (copy, nonatomic) NSString *wineImage; 
@property (copy, nonatomic) NSString *wineName; 
@property (copy, nonatomic) NSString *wineDistrict; 
@property (copy, nonatomic) NSString *wineCountry; 
@property (copy, nonatomic) NSString *wineFlag; 
@property (copy, nonatomic) NSString *wineFylde; 
@property (copy, nonatomic) NSString *wineFriskhet; 
@property (copy, nonatomic) NSString *wineGarvesyre; 
@property (copy, nonatomic) NSString *wineColor; 
@property (copy, nonatomic) NSString *wineSmell; 
@property (copy, nonatomic) NSString *wineTaste; 
@property (copy, nonatomic) NSString *wineSuits; 
@property (copy, nonatomic) NSString *wineGrapes; 
@property (copy, nonatomic) NSString *wineAlcohol; 
@property (copy, nonatomic) NSString *wineSugar; 
@property (copy, nonatomic) NSString *wineAcid; 
@property (copy, nonatomic) NSString *wineProducer; 
@property (retain, nonatomic) NSMutableArray *winePrice; 
@property (copy, nonatomic) NSString *wineFact; 

@end 

和綜合所有這些旅館wine.m

然後我從這裏試圖碼的不同組合,從蘋果屬性格式列表編程指南,http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1和答案,填補了實現代碼如下來自plist的名稱和區域字符串作爲標題/ subtile。現在我創建了一個混亂和困惑自己,我甚至不想從WinesViewController.h/.m發佈代碼。重新開始更好。

後來我將添加圖像也和使用信息的其餘部分從plist中創建WinesDetailViewController,但使的tableView似乎足以與..開始有人可以幫我嗎?

我想要的葡萄酒展示A-Z在tableview中,只有1節開始,我會在以後添加的部分。首先,我需要這種接地結構完蛋了!

回答

1

最簡單的方法是使用:

NSDictionary* wines = [NSDictionary dictionaryWithContentsOfURL:<URL to plist file>]; 

這將創建一個在plist中的字典包含的一切。然後,您可以通過字典的鍵(這將是葡萄酒的名稱)步驟,比如:

NSEnumerator* keyEnum = [wines keyEnumerator]; 
NSDictionary* nextWine = nil; 
while ((nextWine = [keyEnum nextObject]) != nil) 
{ 
    // pull out the data for each wine, such as its image, district, country, etc. and 
    // put them into your model object. 
} 
+0

似乎很容易,但我不明白100%..我在哪裏可以把這個代碼,是不是我在wine.h和.m中做了什麼?或者我可以刪除這些文件嗎?並將其添加到WinesViewController.h/.m?我都是新來的,所以我有點困惑.. – ingenspor

+0

有幾種方法可以處理它。你可以使用從plist中讀取的字典,但我個人不建議這樣做。我試圖用'keyEnumerator'展示的是,它會引導你瀏覽葡萄酒詞典中的每個頂級條目,然後你可以從這些子詞典中提取其他鍵並將這些值放入你的'葡萄酒'對象。所以裏面的'while'循環中,您可以通過調用獲得wineDistrict'[nextWine objectForKey:key_WineDistrict]''那裏是key_WineDistrict'你作爲在plist中該元素的鍵的任何字符串。 – user1118321

+0

我仍然沒有得到這個..我把字典/枚舉編碼在Wine.h/.m(NSObject)並導入到WinesViewController.m?或者我可以刪除NSObject文件並將其全部放在WinesViewController中?爲什麼ContentsOfUrl如果它的內容在我的電腦上? 如果你能解釋我在哪裏放置代碼以及如何建立連接,我會很高興。我嘗試按照開頭的storyboards-in-ios-5-part-1教程,而不是使用plist。 – ingenspor