2012-06-10 31 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