字典中的单元格标题



我有一个包含 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] 是不正确的。

你已经匹配了你的dictionary[kFavorite]那么为什么要从myArray中获取它。 你可以像这样编写循环代码,

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

您可以使用 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];

最新更新