在IOS中完成图像发布方法后如何调用文本发布方法
我使用下面的代码调用图像发布第一,然后在图像发布方法完成后文本发布在IOS中完成图像发布方法后如何调用文本发布方法,ios,objective-c,nsoperationqueue,dispatch,Ios,Objective C,Nsoperationqueue,Dispatch,我使用下面的代码调用图像发布第一,然后在图像发布方法完成后文本发布 -(IBAction)btnChooseClecked:(id)sender { NSOperationQueue *queue = [NSOperationQueue new]; queue.maxConcurrentOperationCount = 1; [queue addOperationWithBlock:^{
-(IBAction)btnChooseClecked:(id)sender
{
NSOperationQueue *queue = [NSOperationQueue new];
queue.maxConcurrentOperationCount = 1;
[queue addOperationWithBlock:^{
[self sendImage];
}];
[queue addOperationWithBlock:^{
[NSThread sleepForTimeInterval:1.0];//2.0
[self sendText];
}];
///(OR) i used below code also
dispatch_async(dispatch_get_main_queue(), ^{
[self sendImage];
// inside sendImage method I am calling sendText as [self performSelector:@selector(sendText) withObject:nil afterDelay:0.2];
})
}
-(void)sendImage
{
NSData *imageData = UIImageJPEGRepresentation([appDelegate scaleAndRotateImage:imageSelected.image], 0.0);
[appDelegate.hub invoke:@"Send" withArgs:@[([imageData respondsToSelector:@selector(base64EncodedStringWithOptions:)] ? [imageData base64EncodedStringWithOptions:kNilOptions] : [imageData base64Encoding])]];
[self performSelector:@selector(sendText) withObject:nil afterDelay:0.5];
}
但有时它可以正常工作,但有时会先发布文本而不是图像。完成first..后不会调用委托方法,因为我们使用了不同的API来执行post方法。
请提出我哪里出了问题的任何想法上述的任何替代方案
提前感谢。使用Objective-C的块概念。它肯定会随您所需的输出而来。我已经使用了如上所述的使用dispatch的块概念@Arpit Kumar Kulshrest您使用的方式不是相互依赖的,我的意思是说,当sendImage使用completionhandler完成时,然后调用sendText。不是你使用的方式你考虑过使用像AFNetworking这样的库吗?使使用这些库变得相当容易。如果您决定使用AFNetworking,您可能会在请求调用的成功块中调用sendText函数。您能否显示[self sendImage]的代码。[self sendImage]的响应是什么?