내 응용 프로그램에는 searchBar가 있습니다. 우리는 입력 텍스트, 그것은 예 (인터넷에서 잡아 데이터와 coredata에 저장) functionGrab을 할 때 :coredata에 데이터를 저장하는 데 문제가 있습니까?
를 입력 해 "안녕"
if([[dict objectForKey:@"Category"] isNotEmpty] && [[[dict objectForKey:@"Category"] objectAtIndex:0] class]!=[NSNull class]){
NSMutableArray * DownloadedTags =[dict objectForKey:@"Category"];
NSMutableSet * TagsReturn=[NSMutableSet set];
for(int i=0;i<[DownloadedTags count];i++){
NSString * Value=[DownloadedTags objectAtIndex:i];
Tag * thisTag= (Tag*)[GrabClass getObjectWithStringOfValue:Value fromTable:@"Tag" withAttribut:@"Name"];
[TagsReturn addObject:thisTag];
}
NSMutableSet * manyManagedObjects = [BusinessToSave mutableSetValueForKey:@"Tags"];
[self removeDifferenceBetween2MutableManagedObjectSets:manyManagedObjects withDownloadedVersion:TagsReturn];
}
그래서 각 비즈는 많은 종류가있는 경우. 멀티 스레드 응용 프로그램에서 발생하는 일은 하나의 스레드가 범주를 넣는 것입니다. 다른 스레드는 커밋하기 전에 동일한 범주를 지정합니다.
그래서 [GrabClass getObjectWithStringOfValue : Value fromTable : @ "태그"withAttribut : @ "Name"]]; 다른 스레드가 그것을 모른 채 이미 동일한 객체를 생성 했음에도 불구하고 새로운 객체를 제공합니다.
코드가 연속적으로 실행되는 모든 작업을 동기화하면 느려질 것입니다.
functionGrab:"H"
functionGrab:"Ha"
functionGrab:"Hal"
functionGrab:"Hall"
functionGrab:"Hallo"
뭔가 같은, 그 functionGrab 5 번
나는 배경에서 functionGrab을 만들고 싶어하지만, 나는 그것이 이상의 데이터를 저장합니다 동기화없이 그 기능을 수행 할 때 문제가 있으므로 작업을 수행 결과는 내 coredata에 5 hallo 단어가 있지만 동기화와 함께 할 경우, 그것은 너무 많은 시간을 너무 천천히 보냈다 ..
내 문제를 해결하는 방법이 있습니까?