2011-09-24 2 views
1

각 셀이 모델 객체에 해당하는 UITableView가 있습니다. 이러한 모델 객체의 목록은 모델 객체를 관리하는 단일 객체 내에 배열로 유지됩니다. UITableViewController 하위 클래스는이 단일 객체를 참조하는 인스턴스 변수를 보유합니다. 모델 객체는 내부 데이터를 웹에서 비동기 적으로 업데이트합니다. 해당 모델 객체가 데이터를 다시로드 할 때 테이블 셀을 업데이트하는 가장 좋은 방법은 무엇입니까? 모델 객체가 알림을 전송해야합니까? 테이블 셀이 KVO를 사용하여 모델 객체에서 변경 사항을 수신 할 수 있습니까? 다른 옵션이 있습니까? 가장 좋은 방법은 무엇입니까?UITableView 셀과 모델 객체 배열 간의 데이터 동기화 유지

NSArray* paths = [[NSArray alloc] initWithObjects:indexPath, nil];  
[tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationMiddle]; 

답변

1

내가있는 UITableViewCell 하위 클래스 해결책을 발견

+0

이것이 가능한 방법이지만 MVC 패러다임을 깨고 셀 재사용 및/또는 KVO 설정 및 문제 해결과 관련하여 문제를 일으킬 수 있습니다. – DrMickeyLauer

0

는 그게 최선의 해결책이지만 이전 프로젝트에서 내가 메시지 reloadRowsAtIndexPaths를 호출했다 모르겠어요. 각 셀은 대응하는 모델 객체에 대한 참조를 유지하고이 객체의 부울 isLoading 속성을 관찰합니다. 로드 상태가 변경되면 셀이 데이터를 업데이트합니다. 즉, 셀 (뷰) 객체는 모델 객체를 관찰 한 다음 모델 객체 상태가 변경 될 때 데이터를 표시하도록 요청합니다.

+0

감사합니다.하지만 상태가 변경 될 때마다 직접 모든 메소드를 호출하는 대신 알림 메커니즘을 설정하려고했습니다. – Sean

+0

그러면 더 나은 대답을 기다리고 있습니다. D – 3on

관련 문제