2013-09-11 2 views
0

스레드 컨텍스트 특정 데이터를 NSPrivateQueueConcurrencyType 스레드로 실행중인 블록에 저장해야합니다. 여기에 내가 블록 내에서 할 싶은 것이의 예입니다 (I가 주어 저장 될 컨텍스트 데이터의 단순화 된 예는하지만 당신은 요점을 파악) :코어 데이터 NSPrivateQueueConcurrencyType 스레드에 스레드 컨텍스트 특정 데이터 저장

dispatch_queue_t myQueue = dispatch_get_current_queue(); 
NSMutableDictionary *myContext = @{@"Context": @"ContextData"}; 
dispatch_set_context(myQueue, (__bridge_retained void *)myContext); 

그러나 문제는 현재 큐에 대한 참조를 가져 오는 데 사용되는 dispatch_get_current_queue() 함수는 사용되지 않으므로 사용하지 않으려합니다. 이 대기열에 대한 참조를 검색하는 다른 메커니즘을 볼 수 없으므로 컨텍스트 데이터를 저장할 수 있습니다. 나는 애플이 dispatch_get_current_queue()를 deprecated했는지에 대해 궁금해하고있다. 왜냐하면 사람들이 내가하려는 일을하고 싶지 않기 때문이다. 1. 이것이 나쁜 이유가 무엇인지 아십니까? 2. 스레드가 시스템 CoreDataPrivateQueue 유형으로 제공되는 경우 사용 된 코드도 작동 할 수 있어야하는 현재 스레드와 관련하여 컨텍스트 데이터를 저장하는 다른 방법을 알고 있습니까?

답변

0

OK, NSThread에 상응하는 호출이 대신 가능합니다. NSPrivateQueueConcurrencyType 유형의 단일 시스템에서 생성 된 MOC가 작동합니다. 스레드 수명과 관련하여 문제가 발생하면 업데이트 될 예정입니다.

관련 문제