[英]Delegate methods are not calling when using separate thread
我已使用以下代碼與Web服務器進行同步。 它正在工作,但由於主隊列中的getUnsyncTicketsFromServer方法調用,UI暫時凍結了。 我試圖在單獨的隊列中執行此操作。 然后,它不調用委托方法(requestReturnedData)。
[NSTimer scheduledTimerWithTimeInterval:320.0 target:self selector:@selector(syncTickets) userInfo:nil repeats:YES];
-(void)syncTickets{
[self sendUnsyncedTickets];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 6 * NSEC_PER_SEC), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 6 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self getUnsyncTicketsFromServer];
});
});
}
-(void)requestReturnedData:(NSData *)data{
}
編輯-
-(void)getUnsyncTicketsFromServer{
ServiceConnector *serviceConnector = [[ServiceConnector alloc] init];
serviceConnector.delegate = self;
[serviceConnector getTicketsFromServer];
dataMethod = @"get";
}
@implementation YourClass () {
ServiceConnector *_serviceConnector;
}
...
-(void)getUnsyncTicketsFromServer {
_serviceConnector = [[ServiceConnector alloc] init];
_serviceConnector.delegate = self;
[_serviceConnector getTicketsFromServer];
dataMethod = @"get";
}
如果您使用的是arc,我認為您的serviceConnector必須被釋放,因此將對象存儲為實例變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.