2010-08-17 3 views
0

나는 TableViews를로드하는 iPhone 앱을 가지고있다. 처음 사용자가 원격 서버에서 .json을 다운로드하는 응용 프로그램을로드하면이를 NSDictionary로 구문 분석하고 장치에 로컬로 .plist로 저장합니다.이 Objective-C 오브젝트를 로컬 파일로 가져 오는 방법은 무엇입니까?

불행히도, 데이터로드 후 MainWindow.xib에서 reloadTable을 수행하는 방법을 알 수 없으므로 응용 프로그램을 종료하고 다시 입력 할 때까지 공백으로 표시됩니다. TableView를 다시로드하거나 .plist 파일로 앱을 미리로드하는 방법을 알아 내려고 많은 시간을 할애 할 수있었습니다. 아마도 나는 리소스 폴더 나 XCode의 파일에 파일을 놓기 만하면된다.

내 문제는 데이터가 .plist에 저장 되었기 때문에 서버에서 사용하는 .json 파일을로드 할 수 없다는 것입니다. 이 .plist 개체를 로컬 파일에 만드는 가장 좋은 방법은 무엇입니까? 내가 직접 전자 메일로 보내거나 장치 시뮬레이터 또는 다른 장치에서 가져올 수 있으면 좋겠지 만 그렇게 쉬운 방법 일 것입니다.

답변

0

예, .plist 파일을 Xcode의 Resources 폴더에 넣으면 응용 프로그램에 내장됩니다. 당신은 실제로 앱이 시뮬레이터 파일 시스템에서 생성되는 파일 .plist의 사본을 잡아 수 있어야

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]; 

: 당신은 같은과에 대한 경로를 찾을 수 있습니다. 내부 모습 :

~/Library/Application Support/iPhone Simulator/User/Applications/XXXXX/Documents 

(여기서 XXXXX는 정말로 긴 임의의 16 진수 문자열입니다.)

0
당신은 테이블보기로 JSON 데이터를 다운로드 및 캐싱에 대한 책임이있는 코드에서 메시지를 보낼 알림을 사용할 수

: 테이블 뷰는 JSON-다운로드 코드를 소유하는 경우

// add observer to table view 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTableView) name:@"jsonDownloaded" object:nil]; 

// send notification from json downloader 
[[NSNotificationCenter defaultCenter] postNotificationName:@"jsonDownloaded" object:self]; 

또한, 사용을 고려 대의원.

관련 문제