使用drawRect 报错 invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution

做一个绘图的功能 , 绘制两个折线图 , 这样的 , 加上了y值显示 , 也没问题,

上面是个tab切换 , 这个折线图是绘制在collectionviewCell上 , 跑的时候没问题

当去切换的时候, 就包了错 invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution

使用drawRect 报错 invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution_第1张图片
开始的时候没有每个点y值显示

解决办法 : 

问题出在了每个Y值数组问题上 , cell里嵌套了个绘图的View , 把数组赋值给view , 这里要注意了 ,(重点是这句) 在view里面要在建一个NSMutableArray去, 把赋值的数组再保存在View的可变数组中 

例如 view里面.h 

@property (nonatomic, strong) NSArray *positionYArr; 用来接收的

那么在.m中 再来一个可变保存赋值的数组

@property (nonatomic, strong) NSMutableArray *needDrawPositionYArr; (初始化)

肯定得有 这个方法吧


- (void)setPositionYArr:(NSArray *)positionYArr {    

  _positionYArr = positionYArr;

1    比如一些坐标转换的操作

2    把这个数组添加到自己的可变数组里就好了(重点这句)

[self.needDrawPositionYArr addObjectsFromArray:positionYArr]

}

然后在绘图方法里 , 直接使用needDrawPositionYArr , 别再用positionYArr 

到这里就搞定了

你可能感兴趣的:(使用drawRect 报错 invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution)