作者valda (valda)
看板MacDev
标题[问题] block包在function中
时间Thu Sep 4 17:42:18 2014
最近写的APP跟FB有强烈的相关性
常需要使用facebook graph api
所以想说在base class中
create method专跟facebook graph api要资料
-(id)requireToFB:(id)parameter
{
__block id finalResult=nil;
FBRequest *request = [FBRequest requestForGraphPath:parameter];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id
result, NSError *error) {
if ([result[@"data"]count]) {
finalResult=result[@"data"];
for (id data in result[@"data"]) {
if ([data[@"name"] isEqualToString:@"Profile Pictures"]) {
NSLog(@"The Profile Pictures ID:%@",data[@"id"]);
}
}
}
}];
return finalResult;
}
不管我怎麽取回传都是nil
但是单独放在程式中执行,却又可以
有人知道这样怎麽解呢?
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.186.235
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MacDev/M.1409823740.A.6FC.html
1F:推 kiii210: 因为程式还没取到值 就已经回传了 09/04 17:55
2F:→ kiii210: 可以用block来解决 09/04 17:56
3F:推 kiii210: (void(^)(id parameter))completionBlock 09/04 17:58
4F:推 kiii210: 取到值completionBlock(finalResult) 09/04 17:59