0

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

我使用以下代码:

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

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

currentEpisode 是我从 XML 中解析出来的剧集,我想检查一下,episodeList 是我的 NSMutableArray 和 Episode 对象。weblink 是包含 URL 的 NSString 属性之一。

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

有谁知道为什么这只适用于网络链接而不适用于我的任何其他属性?

4

1 回答 1

0

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

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

于 2012-09-22T23:43:27.847 回答