- (void)loadDate
{
    MWatchHistoryAPI *watchHistory = [[MWatchHistoryAPI alloc]init];
    [watchHistory fetchHistoryListSetCallBack:^(NSArray *historyVideos) {
        self.dataArray = [historyVideos mutableCopy];
    }];
    NSLog(@"sels.dataArray %@",self.dataArray);
}我从sdk的接口中调出数据 赋给 本类的变量 然后输出为空 self.dataArray = historyVideos;NSLog(@"sels.dataArray %@",self.dataArray);求大牛帮忙解决下  不胜感激

解决方案 »

  1.   

    dataArray是全局变量是可以的,如果是局部变量要在声明前加_block,才能改变局部变量
      

  2.   

    你输出的时机不对,NSLog 是即时执行的,但是 fetchHistoryListSetCallBack 这个 block 应该是异步执行的,在 NSLog 执行之后
      

  3.   

    楼上正解,block还没执行,就NSLog
      

  4.   

    还有一种可能就是你的self.dataArray没有初始化
      

  5.   

     __weak __typeof(self)weakSelf = self;
      

  6.   

    block代码块是在正常的代码执行完之后才会调用的
      

  7.   

    block代码块是在正常的代码执行完之后才会调用的
      

  8.   

    block代码块是在正常的代码执行完之后才会调用的