字典中的单元格标题

时间:2012-12-07 20:32:56

标签: ios uitableview

我有一个包含3个部分的表格。我还有一系列字典用于命名我的单元格等等。我想根据最喜欢的键在我的第二部分填充我的字典中的项目。

这就是我的字典:

<array>
    <dict>
        <key>favorite</key>
        <string>NO</string>
        <key>title</key>
        <string>accessories.sku</string>
        <key>checkedState</key>
        <string>NO</string>
    </dict>
    <dict>
        <key>favorite</key>
        <string>YES</string>
        <key>title</key>
        <string>accessoriesImage</string>
        <key>checkedState</key>
        <string>NO</string>
    </dict>

我之前已经通过这个字典迭代了其他事情,我知道我需要再次这样做,但我不能完全理解这个案例。

static NSString *kTitleKey = @"title";
static NSString *kCheckedState  = @"checkedState";
static NSString *kFavorite = @"favorite";

for (id dict in myArray]) {
    if ([dict[kFavorite] isEqualToString:@"YES"]) {
       cell.textLabel.text = [myArray objectAtIndex:[indexPath row] valueForKey:kTitleKey];
    }
}

但当然 cell.textLabel.text = [myArray objectAtIndex:[indexPath row] valueForKey:kTitleKey] 不正确。

2 个答案:

答案 0 :(得分:1)

您已经与dictionary[kFavorite]匹配,然后又想要从myArray获取该for (id dict in myArray]) { if ([dict[kFavorite] isEqualToString:@"YES"]) { cell.textLabel.text = dict[kTitleKey]; } } 。你可以这样编码你的循环,

{{1}}

答案 1 :(得分:0)

您可以使用NSPredicate过滤数组,然后使用过滤后的数组驱动第二部分:

static NSString *kTitleKey = @"title";
static NSString *kCheckedState  = @"checkedState";
static NSString *kFavorite = @"favorite";

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ CONTAINS[c] %@", kFavorite, @"YES"];

NSArray *filteredArray = [myArray filteredArrayUsingPredicate:predicate];