gpt4 book ai didi

ios - 使用单独线程时不调用委托(delegate)方法

转载 作者:行者123 更新时间:2023-11-28 19:59:32 24 4
gpt4 key购买 nike

我使用下面的代码与网络服务器进行同步。它正在工作,但 UI 卡住了一会儿,因为在主队列中调用了 getUnsyncTicketsFromServer 方法。我试图在单独的队列中进行。然后它不调用委托(delegate)方法(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 必须被释放,因此将对象存储为实例变量。

关于ios - 使用单独线程时不调用委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24857805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com