iphone - 带有返回值的performSelectorOnMainThread

标签 iphone cocoa-touch multithreading

我有以下方法:

- (NSMutableArray *)getElements:(NSString *)theURL;

我想知道是否有办法使用performSelectorOnMainThread 调用该方法,以便我可以获得返回值。到目前为止,我已经尝试过:

myArray = [object performSelectorOnMainThread:@selector(getElements:)
                                   withObject:url waitUntilDone:YES];

但是它不起作用,因为performSelectorOnMainThread返回void。我该如何解决这个问题?

最佳答案

欢迎来到多线程环境,我的 friend 。

您需要将返回值存储在实例变量中,或者通过 withObject 参数通过引用传入对象:

NSMutableDictionary *myDict;

[object performSelectorOnMainThread:@selector(getElements:)
                                   withObject:&myDict waitUntilDone:YES];

您的方法原型(prototype)现在应如下所示:

- (void)getElements:(NSMutableDictionary **)objects;

关于iphone - 带有返回值的performSelectorOnMainThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3346100/

相关文章:

ios - RxSwift 中网络请求的调度器

iphone - 一段时间后性能会下降,尤其是当设备处于休息状态时

iphone - 如何测试方法的协议(protocol)?

ios - 如何制作透明的 UIWebView

java - 没有打印语句,循环看不到其他线程更改的值

java - 如何在Spring Web Service中实现计划任务?

iphone - 提交到应用商店之前,我需要对我的应用进行签名吗?

iPhone - iPhone 无法振动

iphone - 无法从另一个 View 的 NSMutable 数组填充 UITableView

ios - UISwitch 在打开/关闭后重置 TextField 值