ネットワークから来たNSDataに基づいてオブジェクトを初期化したい。
非同期データに基づいてオブジェクトを構築することはできますが、それが完了するまで待ってから次のコマンドに進む方法を考えています。
ヒントやキーワードを教えてもらえますか?
ObjWithApi* aObj = [[ObjWithApi alloc]initWithUrl:url];
if(aObj){
aLabel.text = aObj.title;
}
OK、たくさんの人がこの質問に疑問を投げかけました。しかし、私は今、私自身の答えを持っています。質問自体は間違っています。私が必要としているのは「データが入力された後に何かをする」でした。つまり、ブロックで十分です。次のように並べ替えます
[obj getData:^(NSArray* data) {
make data object by data.
}
この質問を振り返ると、次のようになります
@interface someRemoteDataModel
@implement someRemoteDataModel
+(void)getData:(NSURL*)url andDoSomething:(void(^)(NSArray* data))block {
block(data);
}
@end
その後
[someRemoteDataModel getData:aURL andDoSomething:(^ NSArray *data){
// fill data object and update UI
}];
そして、誰かがこれを読んだら、あなたのアイデアを合理的な方法に変換して、あなた自身の答えを見つけてください。