2014-10-09 3 views
0

getData() 또는 그와 동등한 기능을 사용할 때 정확히 어떻게 Parse가 PFFile 데이터를로드하는지 궁금합니다. 여기에 내 경우가있다 :PFFile 로딩 동작

User 키가 profilePic 인이 클래스는 PFFile이고,이 경우 .JPG 이미지이다. 내 사용자를로드 할 때 자신의 프로필 사진을 UIImageView에 표시하고 싶습니다. 여기 코드 사용하는 것 :

let imageFile = user["profilePic"] as PFFile 
let imageData = imageFile.getData() 
let image = UIImage(data: imageData) 

나는 다음 UITableViewCellUIImageViewimage을 설정하기 위해 진행합니다.

보시다시피 대신 getData()을 사용하고 있습니다. 여기서 완료 블록에 image을 설정합니다.

문제는 주 스레드를 차단하고 있다는 경고가 표시되지만 테이블을 빠르게 스크롤 할 때 전혀 지연이 없음을 알게되어 종종 getData()을 트리거합니다. 상태 표시 줄에도 네트워크 표시기가 표시되지 않습니다. 이는 이미지 파일을 구문 분석에서 반복적으로 가져 오는 중임을 나타냅니다.

요약하면 내 질문은 : 정확하게 사용자가로드 할 때 내 이미지 파일을 구문 분석합니까? 모든 사용자 정보를 가져 와서 캐시에 저장하면 이미지 파일을 다운로드합니까? 또는 파일에 대한 참조를로드 한 후에 getData()을 호출 할 때마다 파일을 다운로드합니까?

미리 감사드립니다.

답변

0

구문 분석은 이미지 파일에 대한 참조를 다운로드하고 getData()을 호출하면 파일 내용을 다운로드합니다. 쿼리가 호출되면 모든 참조가 저장됩니다 (하나의 쿼리로 계산). 그런 다음 getData() 번으로 전화 할 때마다 서버로 이동하여 다운로드 한 참조의 콘텐츠를 다운로드해야하기 때문에 다른 API 요청으로 계산됩니다. Source

인터넷 연결 속도가 느린 경우 기본 스레드에서 getData()으로 전화하면 문제가 발생할 수 있습니다.

은 가능한 경우 캐시에서 데이터를 가져 오거나 구문 분석 서버에서 해당 내용을 가져옵니다.

+0

답장을 보내 주셔서 감사합니다. 동일한 파일에 대해'getData()'를 여러 번 호출하면 매번 서버에서 파일을 다운로드합니까? 아니면 캐시에서로드합니까? –

+0

캐시에서로드합니다. 나는 나의 대답을 업데이트했다. – Dehli

+0

감사! 나는 너의 대답을 받아 들였다. –