입니다. 제 iPhone 앱에 약간의 성능 문제가 있다고 생각합니다.데이터를로드하고 저장하고 다시로드하는 가장 좋은 방법은
인터넷에서 데이터를로드하는 방법을 보여주고 전화 상에 저장하고 다시로드하여 테이블보기로 인쇄하십시오. 나는 앱에 여러 개의 모듈을 가지고 있으므로, 내가 사용하는 일반적인 방법을 설명하고 아마 당신 중 한 명이 아이디어를 얻었다면 그것을 확인하기를 바랍니다.
데이터 양은 10-20 개의 데이터 필드 (정수/텍스트)가있는 약 250 개의 데이터 세트입니다.
1 단계 : URL 요청하여 JSON 데이터 문자열을 얻기 일부 (예를 들어 CITY_ID 및 LAST_UPDATE_TIME에 대한) 값을 제한하여 내가 URL-요청에 의해 MySQL의 데이터베이스에 요청을 시작합니다
에 결과를 제한하십시오.
2 단계 : iPhone에서 SQLite3 데이터베이스에 JSON 객체 저장하기.
오프라인 모드에서도 데이터를 사용하기 때문에이 작업을 수행합니다. 총 시간의 3/4을 차지하기 때문에이 부분은 중 중 하나 여야합니다. 개체를 실행하고 이전에이 개체를 한 번 저장했는지 확인합니다. (여기서는 import_id를 사용하여 MySQL-Database-Objects를 식별합니다.) 찾았 으면이 데이터 세트를 업데이트하고 그렇지 않으면 삽입 할 것입니다.
3 단계 : SQLite는의 데이터를 다시로드하고있는 NSMutableArray
이 배열에 넣어이있는 TableView 의해 사용될 것이다.
참고 : 데이터는 주 스레드에서로드됩니다. 다른 스레드는 일부 엄지 손가락을 게으른로드하거나 회전하는 바퀴를 표시하는 데 사용됩니다.
절차에 큰 실수가 있습니까? 다른 스레드에서 데이터를로드해야하지만이 시점에서 뷰에 무엇을 표시해야합니까?
가장 좋은 방법은 무엇입니까?
당신의 생각은 괜찮아 보입니다. 그러나,로드 및 백그라운드에서 DB를 채우고 어쩌면 사용자에게 활동 표시기를 표시합니다. – Jeremy
기본적으로 괜찮습니다. 참조 할 때 DB의 개별 요소 만로드하는 "게으른"배열 체계를 사용하는 방법을 알아내는 것이 현명합니다 (TableView가 행을 관리하는 방법과 다소 비슷 함). 이를 처리 할 수있는 몇 가지 방법이 있습니다. (시작 중에 전체 배열을로드하면 "나쁜 사용자 환경"이 발생하고 앱이 종료되는 데 충분한 지연이 발생할 수 있음을 유의하십시오.) –
@ 제레미 사용자를 표시하기 위해 데이터를로드하는 "스피닝 휠"을 구현했습니다 –