2012-12-07 32 views
0

我有一個包含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行] valueForKey:kTitleKey]是不正確的。

+0

只是爲了確保我理解正確,你通過你的陣列中的所有詞典要循環,並有「YES」作爲價值每個字典創建一個單元格「最愛」鍵?然後將textLabel.text設置爲「title」鍵的值? – GeneralMike

+0

是的,這正是我想要做的。 – Selch

回答

1

您已經符合dictionary[kFavorite]那麼你爲什麼要採取從myArray。你可以像這樣的代碼你的循環,

for (id dict in myArray]) { 
    if ([dict[kFavorite] isEqualToString:@"YES"]) { 
     cell.textLabel.text = dict[kTitleKey]; 
    } 
} 
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]; 
相關問題