簡體   English   中英

NSArray與NSPredicate過濾器問題

[英]NSArray with NSPredicate filter problems

我有一個充滿這些數據的數組。

"2014-02-24 17:20:45.791 Info[5120:70b] Position 0: {
"0 : 0" = Ergebniss;
12 = Identifier;
"12.06.14" = Spieltag1;
"Brasilien : Kroatien" = Spielpaarung;"

這個結構由XMLParser提供給我。 如何讀取字符串? (“巴西利亞:克魯瓦伊恩” = Spielpaarung或0:0“ = Ergebniss)我嘗試使用NSPredicate進行操作,但收到錯誤消息。

2014-02-24 17:20:59.679 Info [5120:70b] *由於未捕獲的異常'NSInvalidArgumentException'而終止應用程序,原因:'無法解析格式字符串“ Spielpaarung”'*首先拋出調用棧:

我的代碼:

NSArray *filtert = [NSArray arrayWithArray:self.wmXMLParser.alleAktionen];
for (int i = 0; i<[filtert count]; i++) {
NSLog(@"Position %i: %@", i, filtert[i]);
}
NSArray *filtertNew = [filtert objectAtIndex:0];
NSString *attributeName = @"Brasilien : Kroatien";
NSString *attributeValue = @"Spielpaarung";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@", attributeName, 
attributeValue];
NSArray *result = [filtertNew filteredArrayUsingPredicate:predicate];
NSLog(@"%@", result);

您沒有數組,有字典,所以NSArray *filtertNew = [filtert objectAtIndex:0]; 應該真的是

NSDictionary *filtertNew = [filtert objectAtIndex:0];

然后,使用謂詞進行過濾,但是您只想訪問各個鍵值。 因此使用:

NSString *value = [filtertNew objectForKey:attributeName];

如果您的目的實際上是過濾filtert數組,那么您的謂詞是適當的,但適用於錯誤的事物。 它應該是:

NSArray *result = [filtert filteredArrayUsingPredicate:predicate];

(盡管您可能要在謂詞中使用=代替LIKE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM