2011-02-09 5 views

답변

2

shreyasva가 준 답변은 가깝지만 다소 오해의 소지가 있습니다.

먼저 XML을 쉽게 관리되는 Cocoa 데이터 구조로 구문 분석하는 것이 정확합니다. 성능상의 이유로 테이블의 데이터 소스를 XML에 직접 연결하지 않아야합니다. yan.kun의 제안은 가능하지만 "약간 이상의 데이터"가 있다면 성능 문제가 발생할 수 있습니다. NSDictionary 객체의 NSArray에 더 긴 데이터 세트를 파싱하는 것이 좋습니다.

두 번째로 핵심 데이터는 다른 방식으로 XML 문서를 유지할 계획이 없거나 몇 가지 개체 만있는 경우 약간 과잉입니다. 잔인한 잔인 함. 정당한 이유없이 앱의 모든 데이터 구조를 핵심 데이터로 구획 할 필요도 없습니다. NSDictionary 인스턴스는 구문 분석 된 데이터를 테이블 뷰에서 사용하기 위해 캐시 할 때 잘 작동합니다.

셋째, -tableView : cellForRowAtIndexPath : 메소드가 없습니다. 이것은 NSTableView와 UITableView를 혼동시키는 것 같습니다. Mac 태그를 지정 했으므로 NSTableViewDataSource 프로토콜을 살펴보십시오. Cocoa Bindings는 데이터 소스 프로토콜의 "대체"또는 "대체"가 아닙니다. 그것은 "대안"입니다. 구문 분석 된 데이터를 NSArrayController (예 : "레코드"당 사전 배열)에로드하고 테이블 열을 바인딩합니다 (각 열은 배열 컨트롤러의 arrangedObjects에있는 사전의 키에 바인딩 됨). 문자 그대로 2 분간의 복사/붙여 넣기를 문서에서 가져 와서 실행하는 (쉬운) 테이블 데이터 소스 프로토콜을 사용하십시오.

0

아케이는 아키텍처에 대한 아이디어를 제공합니다.

  • XML 파서를 사용하여 XML을 파싱하십시오. NSXMLParser은 정상입니다.
  • 데이터가 너무 많지 않으면 핵심 데이터 개체를 사용하여 데이터를 저장하고 메모리에 보관하십시오. 방금 편집 기능하지 않고, 내용을 나열 할 경우 tableView:cellForRowAtIndexPath:
0

에서

  • 로드 데이터 또는, 당신은 NSXMLDocument로 XML을로드하고 XPath를 통해있는 TableView를 바인딩 할 수 있습니다.

  • 관련 문제