.
CoreData는 "오류 발생"으로 알려진 메커니즘을 사용하여 응용 프로그램의 메모리 사용을 줄입니다. 에서 애플의 docs :
"A 오류가 아직 완전히 실현되지 않은 관리되는 개체 또는 관계를 나타내는 컬렉션 개체 나타내는 개체 틀"이것이 의미하는 것은 당신이 읽을 때이다
을 CoreData의 엔티티는 하나의 엔티티를 채우기 위해 전체 객체 그래프를 읽지 않습니다.
"Post"엔티티를 읽는 경우 해당 게시물과 관련된 모든 댓글을 읽지는 않습니다. 데이터 저장소로 StackMob을 사용하는 경우에도 마찬가지입니다.
나는 이것을 테스트하기 위해 아주 작은 프로젝트를 만들었으며 이것이 내가 가진 것입니다. 스니퍼 찰스를 사용하여 가져 오기 요청/응답을 볼 수있었습니다. 의 모든 "
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Post" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[self.managedObjectContext executeFetchRequest:fetchRequest onSuccess:^(NSArray *results) {
for (NSManagedObject *managedObject in results) {
NSArray *comments = [managedObject valueForKey:@"comments"];
NSLog(@"Post comments: %d", comments.count);
}
} onFailure:^(NSError *error) {
NSLog(@"Error fetching: %@", error);
}];
그리고 여기 당신이 응답에서 볼 수 있듯이
[
{
"post_id": "85FC22A1-92ED-484B-9B52-78CBFE464E5D",
"text": "Post1",
"lastmoddate": 1370916620273,
"createddate": 1370915371016,
"comments": [
"5F421C86-F7E7-4BAD-AB21-F056EB7D9451",
"C1CD96E2-856A-43F0-A71D-09CF14732630",
"BAD9F652-C181-4AA1-8717-05DD5B2CA54E",
"AC7D869B-A2BD-4181-8DCF-21C8E127540F",
"2D1A1C80-9A80-48AE-819D-675851EA17D6"
]
},
{
"post_id": "8A84BE1B-6ECE-4C49-B706-7981490C5C2E",
"text": "Post2",
"lastmoddate": 1370916678114,
"createddate": 1370915379347,
"comments": [
"3C001706-2D91-4183-9A07-33D77D5AB307",
"E7DC3A89-2C3D-4510-83E5-BE13A9E626CF",
"2874B59C-781B-4605-97C7-E4EF7965AF4E"
]
},
{
"post_id": "13E60590-E4E7-4012-A3E2-2F0339498D94",
"text": "Post3",
"lastmoddate": 1370916750434,
"createddate": 1370915398649,
"comments": [
"AEA3E5E3-E32E-4DAA-A649-6D8DE02FB9B2",
"DFCBD7E2-9360-4221-99DB-1DE2EE5590CE",
"484E6832-3873-4655-A6C1-0303A42127D9",
"B2316F8B-0AAF-451F-A91C-9E8B4657B1A5"
]
}
]
(찰스를 사용) 내가 가진 반응이다 : 여기
내가 사용하는 쿼리입니다 comments "배열에는 StackMob에 저장된 주석의 'Id'가 있지만 실제 주석은 없습니다.
희망이 도움이됩니다.
에 따라 다릅니다. CoreData를 사용합니까? – LuisCien
예 stackmobs ios sdk를 통해 CoreData를 사용합니다. –
좋아, 곧 답변을 게시하겠습니다. – LuisCien