2014-12-18 2 views
0

사용자가 로그인 할 수있는 간단한 앱을 만들고 테이블 뷰는 친구 목록을 표시합니다.PFRelation 개체 또는 키가있는 쿼리?

처음에는 사용자가 친구 인 사람의 ID를 포함하는 PFUser 클래스에 friends 배열을 포함시킬 것이라고 생각했습니다.

PFQuery *query = [PFQuery queryWithClassName:@"User"]; 
[query whereKey:@"id" equalTo:@"someID"]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) etc.. 

이 더 좋을 것 PFRelation 필드를 만들고 대신에 사용자 ID가 검색에이에서 사용자를 찾을 : 그래서 때 응용 프로그램로드, 테이블이 사용하는 ID에 대한 PFUser 객체를 반환하여 채울 것인가? 어떤 것이 더 빠르고 더 효율적인 지 확실하지 않습니다. 누군가가 도울 수 있기를 바랍니다

감사합니다.

답변

1

나는 PFRelation 필드를 권하고 싶습니다. 구문 분석 문서에서 :

이것은 PFObjects의 NSArray와 유사하지만, 관계의 모든 개체를 한꺼번에 다운로드 할 필요는 없습니다. 이를 통해 PFRelation을 PFObject 접근 방식의 NSArray보다 더 많은 객체로 확장 할 수 있습니다.

즉, 특히 100 명 또는 1000 명 이상의 친구 목록이있는 개인을 생각할 때 PFRelation이 확장 될 때 더 적절합니다. PFRelation은 융통성이 있으며, 현재 찾고있는 친구 만 더 쉽게 쿼리 할 수 ​​있습니다. 예를 들어, 지난 24 시간 동안 로그인 한 친구 만 찾으려는 경우입니다.

은 자세한 내용은 여기를 참조 : 이것에 대한 https://www.parse.com/docs/ios_guide#objects-pointers/iOS

+0

감사합니다. 나는 PFRelation에 관한 문서를 찾지 못했다. 시도 : PFObject * person = [PFObject objectWithClassName : @ "person"]; 사람 [@ "Name"] = @ "Jon"; PFObject * person2 = [PFObject objectWithClassName : @ "person"]; person2 [@ "Name"] = @ "Ron"; PFRelation * friends = [person2 relationForKey : @ "friends"]; [친구 addObject : 사람]; [person2 saveInBackground]; jon과 친구 인 ron이라는 사람을 친구로 만들고 싶지만이 오류가 발생합니다. 관계에 비 포인터를 추가 할 수 없습니다. (코드 : 111, 버전 : 1.6.0) – Kex

+0

죄송합니다. 질문에 답글을 달고 게시물을 삽입하는 방법? – Kex