나는 SAX로 파싱하는 것에 대해 머리를 쓰려고 노력하고 있으며, iPhone Dev Center에서 발견 된 TopSongs 예제가 좋은 출발점이라고 생각했습니다. 나는 그것의 대부분을 얻습니다.하지만 노드 내의 속성과 값에 도달 할 때 어디서나 좋은 예를 찾을 수 없습니다. XML에는 coverArt에 대한 URL의 경로가 있습니다. XML 노드는 다음과 같습니다. 내가 시도한 것은하는 startElement이있다iPhone SDK를 사용하여 URL 경로에 특성 및 값을 사용하여 SAX를 구문 분석하는 방법은 무엇입니까?
<itms:coverArt height="60" width="60">http://a1.phobos.apple.com/us/r1000/026/Music/aa/aa/27/mzi.pbxnbfvw.60x60-50.jpg</itms:coverArt>
...
((prefix != NULL && !strncmp((const char *)prefix, kName_Itms, kLength_Itms)) &&
(!strncmp((const char *)localname, kName_CoverArt, kLength_Item) &&
!strncmp((const char *)attributes, kAttributeName_CoverArt, kAttributeLength_CoverArt) &&
!strncmp((const char *)attributes, kValueName_CoverArt, kValueLength_CoverArt) ||
!strncmp((const char *)localname, kName_Artist, kLength_Artist) ||
이 같은 말에 바로 localName를 다시 그것을 따기.
if (!strncmp((const char *)localname, kName_CoverArt, kLength_CoverArt)) { importer.currentSong.coverArt = [NSURL URLWithString:importer.currentString];
추적은 - [Song setCoverArt :] : 인스턴스로 전송 된 인식 할 수없는 선택 자입니다.
당신의 제안에 감사드립니다. 이것은 Song 클래스에서 @dynamic으로 설정된 다른 노드와 동일한 구조를 따릅니다. 하지만 데이터 모델에 올바르게 추가되지 않는다고 생각합니다. 이후 속성이없는 다른 노드를 추가하려고 시도했지만 동일한 오류 결과가 발생했습니다. – Jim
오류를 던진 데이터 모델 파일에 새 속성을 추가하지 않았습니다. 이제 오류가 발생하지는 않지만 데이터를 가져 오지 못합니다. 그래서 위의 구조에서 뭔가 빠져 있어야합니다. – Jim
노드에서 한 번의 호출로 데이터를 문자열로 연결할 수 있지만 문제는 다른 그림 크기에 대해 세 개의 노드가 있다는 것입니다. 그래서 나는 아직도 다른 사람들에게 어떻게 접근해야하는지 알 필요가있다. – Jim