0

我有一个单独的类,它从我的主视图控制器调用并开始下载 json 数据并将其异步解析为数组(实例变量)

一旦这个数据完全下载完成并将这个数组传回,有什么方法可以通知我的视图控制器?

我尝试在我的 viewdidload 方法中使用一些循环和睡眠计时器来等待下载数据,但这并没有帮助

4

3 回答 3

1

为此,您应该使用委托。只需谷歌即可找到有关代表的详细信息。这是一个简单的教程

基本思想是将主视图控制器的句柄传递给子类,子类将在处理完json后通知主视图控制器并使用委托将结果发送回主视图控制器。

希望这可以帮助。

于 2013-09-02T00:24:00.793 回答
0

我认为委托对此很有用,但更好的选择是块 api 用于更好地编写此代码。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{

              // data downloading
        dispatch_async(dispatch_get_main_queue(), ^{

              // downloading data use

        });
    }); 

希望这对你有帮助。

于 2013-09-02T09:22:45.637 回答
0

使用通知中心模式。

下载数据后,通过通知模式通知 ViewController。

例如。

[[NSNotificationCenter defaultCenter] postNotificationName:@"SampleNotification" object:arrayObject];

将此代码添加到数据 json 解析类中并传递 Array 对象。

将以下代码添加到 ViewController 类中。获取 Array 对象。[[NSNotificationCenter defaultCenter] addObserver:self 选择器:@selector(smapleMethod:) name:@"SampleNotification" object:nil];

-(void)smapleMethod:(NSNotification *)notification{

 NSString * message=notification.object;
NSLog(@"Message =%@",message);

}

于 2017-06-05T06:05:26.467 回答