나는 Apple doc을 살펴보고 같은 스레드에 알림과 관찰자가 있어야한다는 것을 이해해야하지만 Apple 스레드 코어 데이터 예제 파서 작업이 주 스레드 이외의 스레드에서 알림을 보내고 있지만 관찰자는 주 스레드에 있다는 것을 알게되었습니다. 나는 그것에 대해 혼란스러워하거나 여기서 뭔가를 놓치고 있습니다.관찰자는 iOS의 NSNotification에서 다른 스레드를 청취 할 수 있습니까?
-1
A
답변
0
ThreadedCoreData 샘플의 APLParseOperation.m
에있는 두 가지 알림 호출 중 하나를 언급한다고 가정합니다.
관련 비트는 :
통지 1
[[NSNotificationCenter defaultCenter] postNotificationName:APLParseOperation.AddEarthQuakesNotificationName
object:self
userInfo:@{APLParseOperation.EarthquakeResultsKey: earthquakes}];
이것이 대한 관찰자 :
// In APLEarthQuakeSource.m
_addEarthQuakesObserver = [[NSNotificationCenter defaultCenter] addObserverForName:APLParseOperation.AddEarthQuakesNotificationName
object:nil
queue:nil
usingBlock:^(NSNotification *notification) {
/**
이 때문에 queue
대한 nil
파라미터 미세하다. docs에 따르면이 매개 변수에 nil
을 전달하면 "블록이 게시 스레드에서 동 기적으로 실행됩니다." 문제 없다.
알림 # 2
다음 통지,
항상 주 스레드에서 호출되는- (void)handleEarthquakesError:(NSError *)parseError {
assert([NSThread isMainThread]);
[[NSNotificationCenter defaultCenter] postNotificationName:APLParseOperation.EarthquakesErrorNotificationName
object:self
userInfo:@{APLParseOperation.EarthquakesMessageErrorKey: parseError}];
}
:
는[self performSelectorOnMainThread:@selector(handleEarthquakesError:) withObject:parseError waitUntilDone:NO];
'희망이 도움이됩니다.
관련 문제
- 1. 관찰자는 누구이며 누가 관찰 할 수 있습니까?
- 2. 청취 스레드를 종료하는 Linux 소켓
- 3. 음성 인식기를 계속 청취 할 수 있습니까?
- 4. Xcode는 NSNotification에서 userInfo를 가져옵니다.
- 5. 데몬 스레드를 통해 표준 입력을 청취 할 수있는 방법
- 6. iOS의 다른 이미지에서 이미지를자를 수 있습니까?
- 7. Android : 블루투스 청취 스레드가 UI 스레드를 차단합니다.
- 8. 다른 스레드에서 스레드를 실행할 수 있습니까?
- 9. ScheduledThreadPool을 사용하여 다른 유형의 스레드를 허용 할 수 있습니까?
- 10. 액티비티 스택의 변경 내용을 청취 할 수 있습니까?
- 11. ASP.Net Webforms : RequiredFieldValidator를 청취 할 수 있습니까? (Event)
- 12. Socket.io : 사용자가 청취 채널을 변경할 수 있습니까?
- 13. 다른 앱 도메인에서 스레드를 만들 수 있습니까?
- 14. BackgroundWorker 스레드를 다른 스레드처럼 죽일 수 있습니까?
- 15. 서버와 다른 포트를 청취 할 때 scoket.io를 찾을 수 없습니다.
- 16. iOS의 프레임 속도를 제어 할 수 있습니까?
- 17. 어떻게 새 스레드를 "인계"할 수 있습니까?
- 18. PhoneGap에서 FileTransfer Upload의 업로드를 청취 할 수 있습니까?
- 19. localhost 수신 청취 서버 : 8080 아파치가 여전히 포트 80을 청취 할 수 있습니까?
- 20. 어떻게 많은 스레드를 제어 할 수 있습니까?
- 21. 서블릿에서 스레드를 생성 할 수 있습니까?
- 22. 어떻게이 스레드를 멈추게 할 수 있습니까?
- 23. MBean 내부의 스레드를 처리 할 수 있습니까?
- 24. Cordova 2.5에서 여러 번 장치를 청취 할 수 있습니까?
- 25. 컬렉션에서 NestedModel 변경을 어떻게 청취 할 수 있습니까?
- 26. 자바에서는 외부 모니터의 연결/연결 해제를 청취 할 수 있습니까?
- 27. 끝점에서 내 웹 서비스를 청취 할 수 있습니까?
- 28. MDB가 여러 청취자 포트를 청취 할 수 있습니까
- 29. 관찰자가 Rx로 여러 관찰 대상을 안전하게 청취 할 수 있습니까?
- 30. NSNotification에서 객체를 보내는 방법은 무엇입니까?
APLParseOperation.m에 두 개의 알림 알림이 있습니다. 어느 것을 언급하고 있습니까? – jp2g