过滤NSMutable自定义对象数组

时间:2012-09-22 22:55:19

标签: ios nspredicate

我有一个NSMutableArray,其中包含Episode类型的自定义对象。每个对象都有多个NSStrings作为属性。现在我想过滤数组以检查我是否已经有这一集(从XML解析)并更新它或创建一个新的Episode对象。

我使用以下代码:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"weblink = %@", currentEpisode.weblink];

NSArray* hits = [appDelegate.episodesList filteredArrayUsingPredicate:predicate];

currentEpisode是我从XML解析的一集,我想检查,episodeList是我的带有Episode对象的NSMutableArray。 weblink是包含URL的NSString属性之一。

当我查看网络链接时,一切正常。但是,Podcastfeeds中的URL可以更改,因此我想检查名为kuhid的其他属性,该属性是Feed中提供的唯一标识符。 'kuhid'也是一个NSString(例如:644ED540-EDCA-4D4F-882E-4B3106DDAAB3)。当我检查'kuhid'时,谓词从不匹配,我得到重复。 这两个属性都是NSStrings,都是正确合成的。如果我尝试使用我的其他NSString(例如标题),那就相同了。

让任何人知道为什么只能使用网络链接,而不能使用我的任何其他属性?

1 个答案:

答案 0 :(得分:0)

你确定你的字符串完全匹配,即你没有前导或尾随空格,或者小写与大写,或者使用不同的短划线(例如长划线与短划线)或不可见的字符?

尝试记录两个字符串的NSData表示,以便在调试器中逐字节地比较它们,以确保