약 500 개의 객체로 이루어진 코어 데이터베이스가 있습니다. 이 객체는 사용자가보고 수정할 수있는 '카드'입니다. 사용자가 카드를 수정하면 'groupNumber'라는 속성이 변경됩니다.데이터 객체를 NSArray에로드하면 고통스럽게 느린 시작이됩니다.
각 그룹의 카드 순서는 매우 중요하며 사용자가 결정합니다. 데이터베이스 객체를 배열에로드합니다. 사용자가 변경을하면 'title'속성을 사용하여 배열의 순서를 plist에 저장합니다.
내 문제는 앱을 다시 실행하면 발생합니다. 저장 한 순서대로 그룹 배열을로드해야합니다.하지만 plist를 사용하여 가져 오기 요청을하면 고통스럽게 느립니다.
느린 코드는 다음과 같습니다
// get array from plist sorted by 'title'
NSMutableArray *group1Temp = [plistData objectForKey:@"group1ArrayData"];
for (int i = 0; i < [group1Temp count]; i++) {
// set predicate to 'title' attribute
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title == %@", [group1Temp objectAtIndex:i]];
// load filtered database object into temp array
NSArray *temp = [self.vocabDeckArray filteredArrayUsingPredicate:predicate];
[self.group1Array addObjectsFromArray:temp];
}
이 500 회를 실행하면, 그냥 너무 느립니다. plist에 데이터베이스 객체의 NSArray를 저장할 수 있다면 조건부 검색을 수행 할 필요가 없지만 그렇게 할 수없는 것 같습니다.
내 전체 접근 방식이 잘못되었다고 생각합니다. 데이터베이스 개체 배열의 순서를 빠르게 저장 /로드하려면 어떻게해야합니까? 데이터베이스 객체를 배열 자체에로드하는 것이 좋지 않습니까?
도움 주셔서 감사합니다.
사전 대신 사전에 객체 제목 배열을 저장하는 것 외에는 말한대로 정확하게했습니다. 당신은 저에게 많은 작업을 저장했고 3 초 안에 앱이로드됩니다. 정말 고마워. – shohaku