Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有异步下载数据的Init对象_Ios_Objective C_Oop_Asynchronous_Initialization - Fatal编程技术网

Ios 具有异步下载数据的Init对象

Ios 具有异步下载数据的Init对象,ios,objective-c,oop,asynchronous,initialization,Ios,Objective C,Oop,Asynchronous,Initialization,我有一个需要用网络数据初始化的对象,如果没有下载的数据,它就没有意义。但在我看来,在其init方法中执行异步网络调用并不是一个好主意,因为对象不会立即准备好供用户使用,并且可能会引起混乱。我是否应该只使用一个基本的init方法,该方法将alloc init其所有属性创建一个空对象,并使用其他(非init)方法从网络中填充数据,这些数据将由其他对象显式调用(例如使用此对象的视图控制器)?解决这个问题的好方法是什么?我认为解决方案来自于正确的代码运行顺序: 1) 转到网络并获取数据(此时显示用户活动

我有一个需要用网络数据初始化的对象,如果没有下载的数据,它就没有意义。但在我看来,在其
init
方法中执行异步网络调用并不是一个好主意,因为对象不会立即准备好供用户使用,并且可能会引起混乱。我是否应该只使用一个基本的
init
方法,该方法将
alloc init
其所有属性创建一个空对象,并使用其他(非
init
)方法从网络中填充数据,这些数据将由其他对象显式调用(例如使用此对象的视图控制器)?解决这个问题的好方法是什么?

我认为解决方案来自于正确的代码运行顺序:

1) 转到网络并获取数据(此时显示用户活动指示器)

2) 服务器返回响应->将响应提取到对象中


3) 显示数据或使用数据

为什么不下载数据,将其临时存储在变量中,直到用其值初始化对象?对象用于什么?数据是什么?有意义吗/你能提前下载吗?下载数据时占位符对象有用吗?是否应该开始下载,然后异步返回整个对象?它是一个“用户”类,拥有并可以添加/删除好友。好友列表存储在后端,因此必须从网络填充
\u friends
属性。我想将我所有的后端逻辑封装在类中,这样视图控制器就不会麻烦它了。目前,我有一个
init
方法,它
alloc init
s属性、
addFriend
removeFriend
方法,还有一个
getFriendsFromBackendWithCompletionHandler
方法。