[问题] dispatch_async callback not work

楼主: valda (valda)   2014-09-23 16:20:55
在跟FB Graph API要资料时
xcode提醒我,这行为占用main thread太久的时间
所以我把这段程式码丢到dispatch_async中执行
但却完全没反应
请问有得解吗?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0), ^{
[FBRequestConnection startWithGraphPath:@"/me/taggable_friends"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(
FBRequestConnection
*connection,
id result,
NSError *error
) {
/* handle the result */
NSLog(@"%@",result);
[self insertFriendInfoToContainer:[result
objectForKey:@"data"]];
}];
});
不管如何,都无法执行到nslog那行
作者: howdiun (Howdiun)   2014-09-24 09:00:00
FB最厉害的就是这个
作者: Koromiko (Koromiko.Neo)   2014-09-30 23:42:00
这是FB的bug(?), 如果你active session跑的thread跟startWithGraphPath跑的不一样, callback就不会发生它会认定你的session是空的就直接丢掉修正一下,我说错了,我查了一下跟run loop有关这支底层用的是NSURLConnection,如果不是跑在主线需要自己设定run loop让它有办法继续下去我是参考http://ppt.cc/PGsX但是那个最佳解我觉得不是正解他丢到main thread跟直接写是一样的trace FB这只, 它原本就会把request丢到背景跑所以你可能要确定一下是不是这只在吃资源, 还是其它原因

Links booklink

Contact Us: admin [ a t ] ucptt.com