我正在为我的新iOS应用程序使用酷的lib FontAwesomeKit(https://github.com/PrideChung/FontAwesomeKit)。但是我被一个奇怪的异常困住了,它只在发布模式和带iOS 7.1.1的iPhone上抛出。
看起来像:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'NSConcreteMutableAttributedString addAttribute:value:range:: nil value'
当我在模拟器(DEBUG和RELEASE)和iPhone(DEBUG)中进行测试时,一切正常,iPhone(RELEASE)崩溃了。
此解决方法无济于事-https://github.com/PrideChung/FontAwesomeKit/blob/master/KnownIssues.md
谢谢!
更新
问题出在我的代码和
__weak
参考中:__weak UIColor *menuColor = [UIColor colorWithHexString:@"#636577"];
__weak UIColor *menuColorHover = [UIColor colorWithHexString:@"#3D3F52"];
CGFloat icon_size = 25.5f;
for (UIButton *button in self.buttons) {
if ([button.titleLabel.text isEqualToString:@"Feed"]) {
FAKFoundationIcons *feedIcon = [FAKFoundationIcons homeIconWithSize:icon_size];
[feedIcon addAttribute:NSForegroundColorAttributeName value:menuColor];
[button setImage:[feedIcon imageWithSize:CGSizeMake(icon_size, icon_size)] forState:UIControlStateNormal];
[feedIcon addAttribute:NSForegroundColorAttributeName value:menuColorHover];
[button setImage:[feedIcon imageWithSize:CGSizeMake(icon_size, icon_size)] forState:UIControlStateHighlighted];
}
最佳答案
您在那里不需要__weak
。
正如您在评论中所说,由于没有进行任何优化,因此它可以在调试版本中使用,但是在发行版本中,编译器决定优化弱引用,而将nil
用作参数。
只要摆脱不必要的__weak
修饰符,您就可以了。