8
我試圖從一個標籤,使用庫中獲取ID。在後臺做一些工作,並返回結果
我想出了以下內容。查找標籤的循環在後臺完成,我在tagAsString中得到了正確的結果。
-(void) readTag {
NSLog(@"readTag");
unsigned char * tagUID = (unsigned char *) malloc(M1K_UID_SIZE * sizeof(char));
//work to do in the background
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
ERR ret;
while ((ret = scanner->IsTagAvailable(tagUID)) != ERR_TAG_AVAILABLE) {
NSLog(@"ret: %d", ret);
}
//main thread
dispatch_async(dispatch_get_main_queue(), ^{
if(ret == ERR_TAG_AVAILABLE) {
NSLog(@"tag available");
NSString *tagAsString = [[[NSString alloc] initWithFormat:@"%x%x%x%x", tagUID[0],tagUID[1],tagUID[2],tagUID[3]] retain];
}
});
});
}
我希望能夠返回值,這樣我就能夠調用:
NSString * myTag = [self readTag];
這可能嗎? 感謝您的幫助,邁克爾
謝謝你的回答。你的意思是使用NSNotification來通知還是有其他方法? – Themikebe 2011-05-17 14:51:03
NSNotification是一種可能的方式,但是在這個例子中我只是使用消息傳遞(方法調用)。我將用一個例子編輯我的答案 – jjwchoy 2011-05-17 14:56:50