2017-05-10 7 views
0

IoT 장치를 구축 중이며 비동기 읽기 작업이 훌륭하지만 동기식 읽기를 수행해야합니다. 나는 기본적으로 들어오는대로 버퍼를 읽는 방법이 있기 때문에 안드로이드에서 가능하다고 들었습니다.코어 - 블루투스 - 동기식 읽기가 가능합니까?

Core-bluetooth가 비슷한 것을 지원하는지 또는 누구에게 영리하게 접근 할 수 있는지 궁금합니다.

답변

1

비동기 작업은 작업이 완료 될 때까지 차단하여 동기식으로 만들 수 있습니다. 큐 또는 잠금을 사용하여 차단할 수 있습니다.

NSLock *lock = [[NSLock alloc] init]; 
[thing doSomethingAsynchronousWithCompletion:^{ 
    [lock unlock]; 
}]; 

[lock lock]; 

이렇게하지 마십시오. 절대로.

차단하면 안됩니다. 비동기 코드의 완료 핸들러는 코드를 계속 발생시키는 이벤트를 트리거해야합니다.

[thing doSomethingAsynchronousWithCompletion:^(NSData *readData){ 
    [dataProcessor processData:readData]; 
}];