[問題] block包在function中

作者: valda (valda)   2014-09-04 17:42:18
最近寫的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
但是單獨放在程式中執行,卻又可以
有人知道這樣怎麼解呢?
感謝
作者: kiii210 (HelloWorld!)   2014-09-04 17:55:00
因為程式還沒取到值 就已經回傳了可以用block來解決(void(^)(id parameter))completionBlock取到值completionBlock(finalResult)

Links booklink

Contact Us: admin [ a t ] ucptt.com