2016-07-09 142 views
1

這可能是一個基本問題,但我沒有找到任何有效的方法來完成此操作。假設我有一個包含多個鍵值的多個對象的數組,如下所示。現在,我需要的總數爲grActual,其值爲16-1-13。我可以遍歷數組,然後用數字鍵grAcutal創建一個新數組,然後我可以計數。有沒有其他方法可以做到這一點?如何根據該密鑰的值計算數組中的所有密鑰

(
    { 
    gIActual = "17-Jan-13"; 
    grActual = "16-Jan-13"; 
}, 
    { 
    gIActual = "18-Jan-13"; 
    grActual = "16-Jan-13"; 
}, 
    { 
    gIActual = "16-Jan-13"; 
    grActual = "16-Jan-13";  
}, 
    { 
    gIActual = "16-Feb-13"; 
    grActual = "16-Jan-13"; 
}) 
+0

你可以使用Predicate來搜索像NSArray * filteredarray = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@「(grActual ==%@)」,@「16-Jan-13」]];'which which give你在數組中的對象數量,數組的總數將是你需要的Count。 – iphonic

回答

3

我相信,這將做到這一點,不是說我用NSPredicate經常:

NSArray *filtered = [array filteredArrayUsingPredicate: 
    [NSPredicate predicateWithFormat:@"grActual == %@", @"16-Jan-13"]]; 
NSUInteger count = [filtered count]; 

提示:使用正確的類型,這對於16-Jan-13NSDate,不NSString存儲數據(更不用提Y2K和本地化問題......)。

+0

它可以使用'NSPredicate predicateWithFormat:@「(grActual ==%@)」,@「16-Jan-13」]' – iphonic

+0

@iphonic'用'NSString'搜索。謝謝並更新。 – Droppy

+0

你不能在謂詞中分配,括號在這種情況下是無意義的,所以原文更簡單也更正確...... – Wain

相關問題