0
我想通過稱爲「名稱」的屬性的第一個字母來過濾海關對象的數組。要做到這一點我做的第一個字母陣列:過濾陣列問題
_lettersArray = [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U", @"V", @"W", @"X", @"Y", @"Z", nil];
我想保存在NSDictionary中的結果,其中的關鍵是第一個字母和目標對象與屬性名的第一個字母數組鍵:
for (NSString* letter in _lettersArray) {
NSPredicate* letterPredicate = [NSPredicate predicateWithFormat:@"name beginswith[c] '%@'", letter];
NSArray* itemsLetter = [_items filteredArrayUsingPredicate:letterPredicate];
[_letters setObject:itemsLetter forKey:letter];
}
但是,當這個算法結束_letters字典有所有的鍵,但對象是空的數組。我曾試圖改變
NSPredicate* letterPredicate = [NSPredicate predicateWithFormat:@"name beginswith[c] '%@'", letter];
爲
NSPredicate* letterPredicate = [NSPredicate predicateWithFormat:@"name beginswith[c] 'B'"];
而且一切工作正常(當然它給我只能與B開始的對象)。我做錯了什麼?對我來說,顯然問題出在謂詞指令中。我已經看到_lettersArray是好的,它是和我試圖使用[letter characterAtIndex:0]
而不是字母,但給了我相同的結果...
謂語句的NSLog給我準確的句子形成,我手動和工作!
完美!我已經嘗試過,工作正常,感謝您的幫助! – Jpellat 2012-07-13 14:10:32