我正在为我的新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修饰符,您就可以了。

08-17 08:57