首先这个问题翻译一下
警告说无法加载任何OC类
遇到这个问题,我的模拟器运行是好的,真机6s是没问题的,但在5上就报这个错,所以没有关注代码的问题。但在网上查阅资料,发现这个问题的关键就是 死循环 ! 。可能是递归没有出口这类问题,而我的这个问题是在layoutSubViews 中改变了 自己的frame 这样改变的同时会掉用 layoutSubViews,layoutSubViews中又会改变frame 所以是一个死循环。
所以解决这个bug的重点就是给这个循环找个出口!
但我还是不知道 ,为什么我在模拟器和真机6s中是ok的。而在5上不行。可能是版本问题,6s 系统9.2的,而5是 9.02的,当然也有可能是 真机的底层架构模式不同!
- (void)layoutSubviews {
[super layoutSubviews];
// self.width += 13; 就是这个地方
[self mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(WidthScale(30)+13);
}];
for (UIView *view in self.subviews) {
if ([view isKindOfClass:[UILabel class]]) {
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self);
make.centerY.mas_equalTo(self);
}];
}
if ([view isKindOfClass:[UIImageView class]]) {
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(self);
make.centerY.mas_equalTo(self);
make.height.mas_equalTo(15);
make.width.mas_equalTo(13);
}];
}
}
}