2009-07-21 5 views
0

저는 상당히 큰 MutableDictionray를로드 중이며 UIProgressBar를 사용하고 싶습니다. 누구든지이 작업을 수행하기위한 로딩 시간을 결정하는 방법에 대한 제안을 가지고 있습니까?UIProgressBar로드 중 NSMutableDictionary

감사

+0

나는 아이폰에 진행률 표시 줄을 본 시간을 생각할 수 없다. 원래 설치를 받아 들인다. UIActivityIndicators가 더 자주 사용되며, 사용법에 대한 빠른 자습서가 필요한 경우 도움이 될 수 있습니다. 원래의 질문을 혼란스럽게해서 죄송합니다. – TahoeWolverine

+0

사실 그들은 꽤 자주 사용됩니다. 값은 0.0 - 1.0입니다. 사전로드로 어떻게하는지 알아 내야합니다. UIActiviyInidicator를 사용하는 방법을 알고 있지만이 프로그램의 진행률 표시 줄이 시각적으로 더 좋을 것입니다. – Xcoder

답변

1

내가 여기 당신이에 쉽게 답을 찾을 수 있습니다 생각하지만,하지 않는 몇 가지 포인터입니다. 현재 -dictionaryWithContentsOfFile:으로로드 중이라고 가정합니다.

  • 먼저, 사용자를 강제하는 것은 긴로드를 기다릴 오히려 것으로, 데이터 저장을 변경하는 것이 좋습니다. 핵심 데이터는 매우 큰 사전보다 더 나은 도구 일 수 있습니다.

  • 진행률 표시 줄을 업데이트 할 수 있도록 파일을 청크 (청크)하기 위해 을 사용하여 NSData으로 읽습니다. 백그라운드 스레드에서이 작업을 수행하고 알림을 게시하거나 주 스레드에서 대리자 메서드를 호출하여 진행률 표시기를 업데이트 할 수 있습니다.

  • -readInBackgroundAndNotify으로 실험하고 싶을 수 있습니다. 아이폰의 머리 위로 버퍼 크기를 알지 못하지만 합리적인 간격으로 알림을받을만큼 작을 수 있으며 자신의 백그라운드 스레드를 관리 할 필요가 없어야합니다.

  • NSData으로 데이터를 읽은 후에는 +[NSPropertyListSerialization propertyListFromData:mutabilityOption:format:errorDescription:을 사용하여 구문 분석하십시오. 이것은 충분히 빠르지 만 충분히 빠르지 않아야합니다. 그러나 너무 느린 경우 백그라운드 스레드에서이 작업을 수행하여 마지막 진행률 막대 업데이트의 일부로 만들 수 있습니다. UI를 부드럽게하려면 일부 실험이 필요할 수 있습니다.