2012-09-22 20 views
0

에피소드 유형의 사용자 정의 객체가 포함 된 NSMutableArray가 있습니다. 이러한 각 객체에는 속성으로 여러 NSString이 있습니다. 이제 배열을 필터링하여 이미이 에피소드 (XML에서 파싱 된)가 있는지 확인하고 업데이트하거나 새 에피소드 개체를 만듭니다.필터링 NSMutable 사용자 정의 객체 배열

내가 다음 코드를 사용

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

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

currentEpisode 내가 XML에서 구문 분석 에피소드 내가 확인하고 싶은, episodeList 내있는 NSMutableArray는 에피소드 객체입니다. weblink는 URL을 포함하는 NSString 속성 중 하나입니다.

웹 링크를 확인하면 모든 것이 잘 동작합니다. 하지만 Podcast 피드의 URL이 변경 될 수 있으므로 피드에 제공된 고유 식별자 인 kuhid라는 다른 속성을 확인하고 싶습니다. 'kuhid'또한 NSString입니다 (예 : 644ED540-EDCA-4D4F-882E-4B3106DDAAB3). '쿠 히드 (kuhid)'를 확인하면 술어가 일치하지 않아 중복이 발생합니다. 두 속성 모두 제대로 합성 된 NSStrings입니다. 다른 NSString (예 : 제목) 프로퍼티 중 하나를 시도해도 마찬가지입니다.

왜 웹 링크에서만 작동하며 다른 속성은 사용하지 않는 사람이 있습니까?

+0

당신이 반드시 당신의 문자열이 ** 정확히 ** 일치, 즉 당신이 선행 또는 후행하지 않아도되어 있는지 확인하기 위해 디버거에서 바이트로 그들에게 바이트를 비교하기 위해 두 문자열의 NSData 표현을 로그에 공백 또는 소문자 대 대문자 또는 다른 대시 사용 (예 : 대시 대 짧은 대시) 또는 보이지 않는 문자? 두 문자열의 NSData 표현을 로깅하여 디버거에서 바이트 단위로 비교하도록하십시오. – AliSoftware

+0

아, 고마워. 나는 모든 공백을 제거했다고 생각했지만 이전에는 술어를 만든 후에이 작업을 수행했습니다. 고마워, 때로는 가장 명백한 것을 보지 못합니다. –

+0

나는 그 감각을 안다.) 나는 대답을 할 것이다. 그래서 당신은이 질문을 SO가 아닌 떠나는 대신에 똑딱 거리는 것으로 표시 할 수있다. – AliSoftware

답변

0

문자열이 정확히 일치하는지, 즉 앞뒤 공백이 없거나 소문자 대 대문자 또는 다른 대시 (예 : 대시 대 짧은 대시) 또는 보이지 않는 문자가 사용 되었습니까?

시도는

관련 문제