作者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://www.ptt.cc/bbs/MacDev/M.1409823740.A.6FC.html
推 kiii210: 因為程式還沒取到值 就已經回傳了 09/04 17:55
→ kiii210: 可以用block來解決 09/04 17:56
推 kiii210: (void(^)(id parameter))completionBlock 09/04 17:58
推 kiii210: 取到值completionBlock(finalResult) 09/04 17:59