UITableView分组和.plist

时间:2012-06-09 19:18:16

标签: uitableview plist

我想用plist创建一个UITableView。 最初,我的plist是这样构造的:

<?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>First</string>
        <key>description</key>
        <string>First</string>
        <key>image</key>
        <string>image.png</string>
    </dict>
    <dict>
        <key>name</key>
        <string>Second</string>
        <key>description</key>
        <string>SecondR</string>
        <key>image</key>
        <string>image.png</string>
    </dict>

//etc
</array>
</plist>

http://i49.tinypic.com/2db19no.png

name是我的rowNamed中行的名称和detailView标签的名称,描述是针对我的'detailView and ìmage中的UIImageView中的字符串detailView

cell.textLabel.text确实以这种方式显示name键:

cell.textLabel.text = [[sortedList objectAtIndex:indexPath.row]objectForKey:@"name"];

现在,按照这个问题的答案sectioned UITableView sourced from a pList,我创建了我的新plist文件,其中包含以这种方式构建的部分:

<?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>Title</key>
        <string>   Section1</string>
        <key>Rows</key>
        <array>
            <dict>
                <key>name</key>
                <string>Test</string>
                <key>description</key>
                <string>test</string>
                <key>image</key>
                <string>testtttt</string>
            </dict>
        </array>
    </dict>
    <dict>
        <key>Title</key>
        <string>   Section2</string>
        <key>Rows</key>
        <array>
            <dict>
                <key>name</key>
                <string>Test</string>
                <key>description</key>
                <string>test</string>
                <key>image</key>
                <string>testtttt</string>
            </dict>
        </array>
    </dict>
</array>
</plist>

http://i47.tinypic.com/10579f7.png

关键是现在我不知道如何使它类似于先前的plist结构(我的意思是图像,名称和描述),我不知道如何使cellForRowAtIndexPath显示name中包含的Rows密钥作为单元格的标题。我试过

cell.textLabel.text = [[[sortedList objectAtIndex: indexPath.section] objectForKey: @"name"]objectAtIndex:indexPath.row];

但我得到一个空单元格。

我希望cell.textLabel.text显示每个部分中包含的每个元素(行)的键name 有人能帮我吗?

1 个答案:

答案 0 :(得分:2)

您的plistdictionaries的数组。每个dictionary代表一个sectionrows中的section作为array key Rows section dictionary存在row。 因此,要在特定section中获得section,请先获取row。然后使用objectForKey:@"Rows"获取array

一旦有rows行,它又会包含多个dictionary作为NSDictionary *section = [sortedList objectAtIndex:indexPath.section]; NSArray *rows = [section objectForKey:@"Rows"]; cell.textLabel.text = [[rows objectAtIndex:indexPath.row] objectForKey:@"name"];

{{1}}