尝试从 objects[1] 中插入 nil 对象
attempt to insert nil object from objects[1]
在我的项目中,当我滚动得太快时,我收到一条错误消息:
Terminating app due to uncaught exception
'NSInvalidArgumentException', reason:
'*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]:
attempt to insert nil object from objects[1]'
*** First throw call stack:
(0x180a39900 0x1800a7f80 0x1809281a8 0x180928040 0x1000a3994 0x1000a2b30
0x10016e784 0x185f4c108 0x185790810 0x18578b89c 0x185727778
0x183136b2c 0x183131738 0x1831315f8 0x183130c94 0x1831309dc 0x183183770
0x180cae1e8 0x1809db1f8 0x1809f1634 0x1809f0d6c 0x1809eeac4 0x18091d680
0x181e2c088 0x185794d90 0x100183934 0x1804be8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
然后 returns 我输入以下代码(突出显示底部的 NSDictionary *attributes
行):
- (NSDictionary *)attributesFromProperties{
// Setup shadow attributes
NSShadow *shadow = shadow = [[NSShadow alloc] init];
if (self.shadowColor){
shadow.shadowColor = self.shadowColor;
shadow.shadowOffset = self.shadowOffset;
} else {
shadow.shadowOffset = CGSizeMake(0, -1);
shadow.shadowColor = nil;
}
// Setup color attributes
UIColor *color = self.textColor;
if (!self.isEnabled){
color = [UIColor lightGrayColor];
} else if (self.isHighlighted){
color = self.highlightedTextColor;
}
// Setup paragraph attributes
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
paragraph.alignment = self.textAlignment;
// Create the dictionary
NSDictionary *attributes = @{NSFontAttributeName : self.font,
NSForegroundColorAttributeName : color,
NSShadowAttributeName : shadow,
NSParagraphStyleAttributeName : paragraph,
};
return attributes;
}
此代码来自 KILabel。有人碰巧知道如何解决这个问题吗?
谢谢!
TLDR: self.highlightedTextColor
是 nil
。将其设置为某种颜色。
详情:
代码在三种情况下会因此消息而崩溃:
self.font
是 nil
.
self.textColor
是nil
,self.isEnabled
是YES
,self.isHighlighted
是NO
。
self.highlightedTextColor
是nil
,self.isEnabled
是YES
,self.isHighlighted
是YES
。
由于 KILabel
扩展 UILabel
不允许 textColor
和 font
值的 nil
,问题可能是由 highlightedTextColor
(选项 3)。
在我的项目中,当我滚动得太快时,我收到一条错误消息:
Terminating app due to uncaught exception
'NSInvalidArgumentException', reason:
'*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]:
attempt to insert nil object from objects[1]'
*** First throw call stack:
(0x180a39900 0x1800a7f80 0x1809281a8 0x180928040 0x1000a3994 0x1000a2b30
0x10016e784 0x185f4c108 0x185790810 0x18578b89c 0x185727778
0x183136b2c 0x183131738 0x1831315f8 0x183130c94 0x1831309dc 0x183183770
0x180cae1e8 0x1809db1f8 0x1809f1634 0x1809f0d6c 0x1809eeac4 0x18091d680
0x181e2c088 0x185794d90 0x100183934 0x1804be8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
然后 returns 我输入以下代码(突出显示底部的 NSDictionary *attributes
行):
- (NSDictionary *)attributesFromProperties{
// Setup shadow attributes
NSShadow *shadow = shadow = [[NSShadow alloc] init];
if (self.shadowColor){
shadow.shadowColor = self.shadowColor;
shadow.shadowOffset = self.shadowOffset;
} else {
shadow.shadowOffset = CGSizeMake(0, -1);
shadow.shadowColor = nil;
}
// Setup color attributes
UIColor *color = self.textColor;
if (!self.isEnabled){
color = [UIColor lightGrayColor];
} else if (self.isHighlighted){
color = self.highlightedTextColor;
}
// Setup paragraph attributes
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
paragraph.alignment = self.textAlignment;
// Create the dictionary
NSDictionary *attributes = @{NSFontAttributeName : self.font,
NSForegroundColorAttributeName : color,
NSShadowAttributeName : shadow,
NSParagraphStyleAttributeName : paragraph,
};
return attributes;
}
此代码来自 KILabel。有人碰巧知道如何解决这个问题吗?
谢谢!
TLDR: self.highlightedTextColor
是 nil
。将其设置为某种颜色。
详情:
代码在三种情况下会因此消息而崩溃:
self.font
是nil
.self.textColor
是nil
,self.isEnabled
是YES
,self.isHighlighted
是NO
。self.highlightedTextColor
是nil
,self.isEnabled
是YES
,self.isHighlighted
是YES
。
由于 KILabel
扩展 UILabel
不允许 textColor
和 font
值的 nil
,问题可能是由 highlightedTextColor
(选项 3)。