我想根据来自网络的 NSData 初始化一个对象。
我可以根据异步数据构建对象,但我想知道如何等到它完成并继续下一个命令。
请问我可以得到一些提示或关键字吗?
ObjWithApi* aObj = [[ObjWithApi alloc]initWithUrl:url];
if(aObj){
aLabel.text = aObj.title;
}
好的,很多人质疑这个问题..但我现在有自己的答案。这个问题本身就是错误的。我需要的是“填充数据后做一些事情”,这意味着块就足够了。排序像
[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
}];
如果有人读到这篇文章,请尝试将您的想法转换为合理的方式,并找出您自己的答案。