Objective c 什么';这是等待数据加载的优雅方式

Objective c 什么';这是等待数据加载的优雅方式,objective-c,Objective C,虽然网络请求需要时间来加载,但我设置了一个While循环来等待数据。在完成网络请求之前,变量myData为nil。代码如下: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ while (![[DataStore sharedInstance]myData]) { NSLog(@"still wating...

虽然网络请求需要时间来加载,但我设置了一个While循环来等待数据。在完成网络请求之前,变量myData为nil。代码如下:

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            while (![[DataStore sharedInstance]myData]) {
                NSLog(@"still wating...");
            }
            _dataArray = [[DataStore sharedInstance]myData];
            [_tableView reloadData];
        });
因此,我设置了一个无限等待数据加载的队列。完成后,队列最终可以进入下一个顺序:重新加载tableView


让队列保持这样的状态是好代码吗?这会对cpu资源造成巨大浪费吗?

一个块或者一个通知怎么样?因为看起来您正在阻塞UI…最优雅的方法不是等待数据,而是使用完成块。投票非常昂贵。