1

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>

my の行とラベルnameの名前はどこにありましたか? description は my 'detailView の文字列であり、.rowNameddetailViewand ìmagedetailView

cell.textLabel.text は、次のようにnameキーを示しました。

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

さて、この質問の答えに続いて、 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>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>

ポイントは、以前の plist 構造 (つまり、画像、名前、説明) に似たものにする方法がわからず、セルのタイトルとして含まれているキーをcellForRowAtIndexPath表示する方法がわからないことです。 . で試しましたnameRows

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

しかし、私は空のセルを取得します。

各セクションに含まれる各要素 (行)のキーを cell.textLabel.text に表示したいのですが、name誰か助けてもらえますか?

4

1 に答える 1

2

あなたplistはの配列ですdictionaries。それぞれdictionaryが を表しますsection。そしてrowsa 内には、その中にある/sectionとして存在します。したがって、特定の を取得するには、まず を取得します。次に、using を取得します。arraykeyRowssectiondictionaryrowsectionsectionrowobjectForKey:@"Rows"

array行を取得すると、再びいくつかの行がrowsとして含まれますdictionary

NSDictionary *section = [sortedList objectAtIndex:indexPath.section];
NSArray *rows = [section objectForKey:@"Rows"];
cell.textLabel.text = [[rows objectAtIndex:indexPath.row] objectForKey:@"name"];
于 2012-06-10T09:46:29.627 に答える