2012-06-01 2 views
0

내 응용 프로그램에서는 XML 파싱을 통해 채워진 tableviews를 사용하고 XML에서 ftp를 가져오고 XML에는 다음보기 및 이미지 URL과 텍스트에 대한 다른 XML URL이 포함되어 있습니다. 문제는 테이블 뷰의 요소를 선택하면 다른 뷰로 푸시되지만 매우 오랜 시간 동안로드됩니다. 내 앱을 시뮬레이터로 실행했지만 기기에서 테스트 한 적이 없습니다.테이블 뷰 요소가 선택되었을 때 느린 밀기

아무도 문제가 무엇인지 알 수 없습니까?

연결 문제입니까?

기기에서 정상적으로 작동합니까?

+0

하나의보기에서 다음보기로의 전환을 처리하는 코드를 게시하는 것이 도움이됩니다. 그것은 segue를 통해입니까? 아니면 수동으로 밀어 넣으시겠습니까? 그것이 시작되기 전에 어떤 유형의 설정을하고 있습니까? 더 많은 정보가 필요합니다. –

답변

1

장치에 대한 코드를 테스트하고 성능에 대한 가정을하지 않을 것을 제안합니다. 나는 당신이 서버로 가서 해당 이미지가 푸시 된보기로 표시되도록 요청한다고 가정합니다. 어떤 경우에는 이미지 위치 표시자를 사용하여 뷰를로드하고 보조 스레드에서 다운로드 이미지를 스핀 오프해야합니다 (UI를 차단하지 않도록 느리게로드하는 것이 좋음). 이미지 데이터가 사용 가능할 때 이미지 자리 표시자를 업데이트합니다.

자세한 도움이 필요하시면 기꺼이이 답변을 업데이트하십시오.

푸시 된 뷰에서 테이블 뷰를로드하는 경우 푸시 된 뷰 (보기 흉한 UX 임)보다 먼저 뷰에서 정지가 발생합니다. 따라서 잠시 동안 걸리는 코드의 로직을 "push view"의 하위 클래스로 옮기십시오. 데이터를 처리하는 동안 회 전자 (MBProgressHud 사용)와 같은 것을 구현할 수 있습니다. 이렇게하면 지연이 시작되기 전에로드 된보기가 표시됩니다.

이제 UX를 개선하는 절차는 다음과 같을 수 있습니다.
1. 밀어 넣기보기의 - (void)viewDidLoad에서 테이블 뷰를 숨길 수 있습니다. 푸시 된 뷰의 -(void)viewDidAppear:(BOOL)animated에서

[self.myTable setHidden:YES]; 

2. (여기 작업의 URL에서 이미지를 찾는 서버로 이동되는) 일을 알고하는 사용자에 대한 회 전자를 던져 일을 .

//your code here will vary 

3. 모든 데이터는 단지 테이블을로드 다운로드 알고

는 스피너를 숨기고 테이블을 보여줍니다. -(void)viewDidAppear:(BOOL)animated 메소드 끝에이 작업을 수행 할 수 있습니다.

[MBProgressHUD hideHUDForView:self.view animated:YES]; 
    [myTable reloadData]; 

나는 사용자가 기다려 탐색 모음에서 다시 차단 버튼을하지 않기로 결정을 싫어하기 때문에, 보조 스레드에 모든 비용이 일을 보내는 것이 좋습니다. 그러나 원래의 질문에 답하기 위해 뷰를 즉시로드해야하지만 데이터를 얻기 위해 기다려야합니다.

+0

당신이 무슨 뜻인지는 이해하지만 문제는 모든 항목이로드되기 전에 뷰에 밀어 붙이지 않는다는 것입니다 (항목을 선택한 tableview에서 잠시 멈춤). 다운로드가 주 스레드에 있기 때문입니다 좀 더 자세한 내용을 알려 주시면 좋을 것입니다. 고맙습니다. – Hosni

+0

그래, 나는 다시 추측하고있다. (내가 틀렸다면 나를 바로 잡아라.) 푸시 된 뷰에서 tableview와 같은 것을로드하고 해당 뷰에 델리게이트 및 데이터 소스 코드가 있으면 실제로 뷰를 푸시하기 전에 모든 델리게이트 및 데이터 소스가 작동하므로 중단이 발생할 것입니다. viewdidload 작업 너무 먼저). 그러한 경우 알려 주시면 문제 해결에 도움이됩니다.주 스레드에서 다운로드를 수행하는 것은 UI 문제를 해결하는 방법이지만, 제 가정이 맞으면 먼저 문제를 해결해야합니다. 알려줘. – Sparq

+0

당신이 맞아요 내가 밀어 넣은보기에 tableView를 사용하고 있지만보기에 밀어 넣기 전에 실제로 멈 춥니 다 (선택한 셀이 멈추는 동안 강조 표시됨), 약 20 초 동안 잠시 동안 푸시되고 다음과 같은보기가 표시됩니다 나는 보여주고 싶었다. – Hosni

관련 문제