在ios中,如何在后台使用NSData返回类型执行方法

在ios中,如何在后台使用NSData返回类型执行方法,ios,objective-c,performselector,Ios,Objective C,Performselector,在iOS中,如何在后台使用NSData返回类型执行方法 我试过这个: NSData *loginiddata=[self performSelectorInBackground:@selector(loaddatawithurl:param:) withObject:OBJ]; 但是它不起作用。在您的情况下,性能选择背景有两个问题: 该方法没有返回值 (比较上面Ken Thomases的评论),它只适用于采用单个 论点最简单的解决方案(在我看来)是使用GCD(大中央调度) 方法: dispat

在iOS中,如何在后台使用
NSData
返回类型执行方法

我试过这个:

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

但是它不起作用。

在您的情况下,
性能选择背景有两个问题:
该方法没有返回值
(比较上面Ken Thomases的评论),它只适用于采用单个
论点最简单的解决方案(在我看来)是使用GCD(大中央调度)
方法:

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

“它不起作用”是什么意思?提供有关问题的更多信息。在后台执行选择器,但在获得它将返回的数据之前不继续,这意味着什么?你的想法很混乱,我想在后台执行“-(NSData*)loaddatawithurl:(NSArray*)Array;”这个方法你知道怎么做吗?我尝试了上面的代码行,但由于performSelectorInBackground方法有无效的返回类型,它给了我一个不兼容返回类型的错误。谢谢Martin R,这很有帮助。