我有一个包含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] 不正确。
答案 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];