2013-02-13 71 views
0

標籤文字使用的iOS名字我現在有一個plist文件看起來像這樣:陣列從plist中

<plist version="1.0"> 
<dict> 
    <key>Hello</key> 
    <array/> 
    <key>Hi</key> 
    <array/> 
</dict> 
</plist> 

多個鍵可以由用戶加入到這一點。我需要能夠使用這些鍵作爲TableView中的標籤。 TableView已準備好並設置完畢。我只需要能夠抓住每個數組並將其用於標籤。我怎樣才能做到這一點?

+0

如果您能夠將plist結構更改爲Dictionary包含數組,並且該數組包含其他字典,則可以按plist的順序從plist獲取每個項目。第一個元素Hello,第二個元素hi等等 – 2013-02-13 16:19:21

回答

1

從plist中加載NSDictionary,然後獲得所有密鑰[dictionary allKeys],它返回您的情況下的字符串數組。請注意,該字典不保存鍵的順序。所以如果你想每次都顯示相同的表格,你必須將鍵碼分開存儲或排序。

+0

這就是我現在在我的'cellForRowAtIndexPath'方法中做的事情: 'UILabel * label =(UILabel *)[cell viewWithTag:1000]; NSString * path = [[NSBundle mainBundle] pathForResource:@「Data」ofType:@「plist」]; NSMutableDictionary * dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:(NSString *)path]; label.text = [[dictionary allKeys] objectAtIndex:indexPath.row];' – 2013-02-13 16:14:55

+0

ugh。這可能會起作用(但更有可能這不起作用,正如我在答覆中所說的,所有鍵並不保證每次調用時鍵的順序相同),但這非常難看。不要在每個cellForRowAtIndexPath調用中加載字典。這非常昂貴。最好將[字典allKeys]存儲爲視圖控制器的NSArray屬性(例如viewDidLoad方法),然後使用它。 – kovpas 2013-02-13 16:17:55

+0

好的,我爲我的視圖控制器添加了一個ivar,它是'NSArray * viewerKeys'。在'viewDidLoad'我添加了'NSString * path = [[NSBundle mainBundle] pathForResource:@「Data」ofType:@「plist」]; NSMutableDictionary * dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:(NSString *)path]; viewerKeys = [dictionary allKeys];'和cellForRowAtIndexPath'包含'label.text = [viewerKeys objectAtIndex:indexPath.row'。沒有快樂 – 2013-02-13 16:24:02