0
我已經使用下面的代碼與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";
}
你在哪裏調用requestReturnedData?你在哪裏設置代表? – Ryan
@trick你可以檢查編輯。 – Susitha
嘗試在該單獨的線程上運行異步的東西,並通過運行dispatch_async(dispatch_get_main_queue()...調用委託方法...' – brandonscript