怎么将block里面的值赋给本类的变量

phyone_ 2015-12-10 10:05:36
- (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);

求大牛帮忙解决下 不胜感激。。。
...全文
331 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
XMelo 2015-12-24
  • 打赏
  • 举报
回复
block代码块是在正常的代码执行完之后才会调用的
XMelo 2015-12-24
  • 打赏
  • 举报
回复
block代码块是在正常的代码执行完之后才会调用的
XMelo 2015-12-24
  • 打赏
  • 举报
回复
block代码块是在正常的代码执行完之后才会调用的
目生鱼 2015-12-23
  • 打赏
  • 举报
回复
还有一种可能就是你的self.dataArray没有初始化
happyness44 2015-12-23
  • 打赏
  • 举报
回复
__weak __typeof(self)weakSelf = self;
成为IT的男人 2015-12-22
  • 打赏
  • 举报
回复
控制台输出比赋值先执行,当然没有喽~~
Pyn_n 2015-12-21
  • 打赏
  • 举报
回复
用通知传值试试
qq_28937033 2015-12-11
  • 打赏
  • 举报
回复
楼上正解,block还没执行,就NSLog
Bannings 2015-12-10
  • 打赏
  • 举报
回复
你输出的时机不对,NSLog 是即时执行的,但是 fetchHistoryListSetCallBack 这个 block 应该是异步执行的,在 NSLog 执行之后
phyone_ 2015-12-10
  • 打赏
  • 举报
回复
那赋值之后为什么为空呢 ?
dennis_ben 2015-12-10
  • 打赏
  • 举报
回复
dataArray是全局变量是可以的,如果是局部变量要在声明前加_block,才能改变局部变量

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧