ios - 在 ios 中如何在后台执行具有 NSData 返回类型的方法

标签 ios objective-c performselector

在 iOS 中如何在后台执行带有 NSData 返回类型的方法。

我试过这个:

NSData *loginiddata=[self performSelectorInBackground:@selector(loaddatawithurl:param:) withObject:OBJ];

但它不起作用。

最佳答案

在您的案例中,performSelectorInBackground 存在两个问题: 该方法没有返回值 (比较 Ken Thomases 上面的评论),它只适用于采用单个的方法 争论。最简单的解决方案(在我看来)是使用 GCD(Grand Central Dispatch) 方法代替:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSData *loginiddata = [self loaddatawithurl:url params:params];
    // ... 
});

关于ios - 在 ios 中如何在后台执行具有 NSData 返回类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20582550/

相关文章:

ios - @IBOutlet 和@IBAction 引用了错误的项目,如何摆脱这些引用?

ios - UIScrollView 不起作用(无法滚动)

ios - 如何从工具栏xcode ios中的barbutton中的UICollectionField中获取(索引)文本字段

ios - 没有间隙的核心动画循环

ios - 具有整数对象参数的 Objective C performselector 给出垃圾值

ios - IOS中带参数上传多部分图片

ios - 如何在 swift 中使用加速度计和重力检测苹果 watch 的位置?

iphone - 从内存中删除 ViewController

objective-c - "performSelector may cause a leak"泄漏时的替代方案?