답변:
oneway
분산 객체 API와 함께 사용되어 서로 다른 스레드 또는 응용 프로그램간에 Objective-C 객체를 사용할 수 있습니다. 메서드가 반환 될 때까지 호출 스레드를 차단해서는 안된다고 시스템에 알립니다. 이것이 없으면 메서드의 반환 유형이 무효 인 경우에도 호출자는 차단됩니다. 분명히 void 이외의 다른 것과 함께 사용되지는 않습니다. 그렇게하면 메서드가 무언가를 반환하지만 호출자는 그것을 얻지 못합니다.
분산 객체에 대한 자세한 내용은 Cocoa 개념적 DistrObjects를 참조하십시오 .
Apple의 문서에 따르면 oneway는 분산 객체에만 사용되며 멀티 스레딩에는 사용되지 않습니다.
단방향 수정자는 오브젝트가 원격 인 경우에만 사용됩니다. 이 경우 릴리스 호출은 메서드가 종료되기 전에 비동기 적으로 반환 될 수 있습니다. 네트워크에서는 리턴 메시지를 기다리는 데 시간이 걸릴 수 있기 때문에 의미가 있습니다.
릴리스 메서드에는 반환 값이 없으므로 호출을 비동기 적으로 실행할 수 있습니다. 대조적으로, 보유 및 자동 해제는 ID를 리턴하므로 리턴 메시지가 네트워크를 통해 전송 될 때까지 기다려야합니다.
oneway
키워드를 사용하면 호출 된 메서드가 실행되는 동안 메시지가 호출 스레드를 차단하지 않는 경우 호출 된 메서드가 두 번째 스레드에서 실행됩니다. (가장 단순한 형태의) 멀티 태스킹 아닌가요? 이것을 사용하여 일부 작은 작업을 다른 스레드로 빠르게 분리 할 수 있습니까 ? 대단히 감사합니다.
- (oneway void) release
되나요? 다른 컴퓨터 나 프로세스에 있지 않습니다.
one way
방법을 정의하는 don't wait for the method to complete and return anything. block it if there is any n/w trafic or so.
것이 의미가 있습니까?
oneway void
코딩에서 가끔 볼 수있는 아름다운 우연한 은유 중 하나입니다. "다른쪽에있는 것이 있으면 우리에게 말하지 마십시오."