您好,我有一個可能很容易的問題,但我無法處理它呢。使用NSPredicate匹配兩個數組中的ID
- 我有一個Modelclass'Location',它保存着一個帶有Category ID的數組(12,23,56)。
- 然後,我有一個數組與所有可用的類別ID(1,2,3,4,5,6,7,...)
- 所有這些類別都有一個ID顯示在TableView中,並能夠選擇與否。
- 我在MapView(註解類是位置)上顯示一個標記,它應該根據所提到的Filter TableView中的過濾器的選擇來顯示。
我需要實現「按類別過濾」功能,該功能可刪除所有標記並再次添加它們,但僅基於列表中的選擇。
所以我需要比較陣列與位置模型中的filter-id與ArrayView中的所有Filter-ID在TableView中。我用這個以下功能:
for (Location *currLocation in arrListOfLocationsNearby) {
爲(的NSString * currKatId在currLocation.arrKatIds){
NSInteger intCurrKatId = [currKatId integerValue];
NSLog(@"Current KatId %@ id: %d \n", currLocation.strAdr, intCurrKatId);
for (Filter *currFilter in [SDM getSharedDataManager].arrListOfFilterOptions) {
if (currFilter.isSelected) {
NSInteger intCurrFilterId = [currFilter.strAtt_id intValue];
NSLog(@"Current Filter %@ id: %d \n", currFilter.strAtt_text, intCurrFilterId);
if ([currKatId intValue] == [currFilter.strAtt_id intValue]) {
currLocation.isVisible = YES;
}else {
currLocation.isVisible = NO;
}
}
}
}}
我知道這將是最無效的方法循環一切。我想以某種方式使用NSPredicate,但是我之前從未使用它們,而且找不到我的問題的示例。
任何提示你們?
關於m。
我開始回答,感到困惑,但現在我想我再次得到它。所以基本上,你有三個數組:一個包含所有類別,一個包含用戶在tableview中選擇的類別和一個...... - 不,再次混淆。 – 2010-09-19 08:58:20