gpt4 book ai didi

ios - 类型为 'CFTypeRef _Nullable'(又名 'const void *')的集合元素不是 Objective-C 对象

转载 作者:行者123 更新时间:2023-11-28 21:26:47 24 4
gpt4 key购买 nike

我的项目中有一个 below util 方法。我在之前的 iOS 10 版本中没有遇到任何问题。

+ (CGRect)boundsRectWithSize:(id)objView
{
return [[objView text] boundingRectWithSize:CGSizeMake([objView bounds].size.width, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading)
attributes:@{ NSFontAttributeName : [objView font]}//Issue in this line
context: nil];
}

enter image description here

objView可以是UIlabel, UITextView, UItextField

但在 iOS 10 应用程序中无法编译并出现以下错误

Collection element of type 'CFTypeRef _Nullable' (aka 'const void *') is not an Objective-C object

最佳答案

一开始我以为是UILabel,所以说在attributes字典中强制转换为UILabel。但它可以是您所说的任何类型的 UILabel、UITextView 和 UITextField。所以你可以先用valueForKey:方法获取字体,然后在属性字典中使用这个字体。

 + (CGRect)boundsRectWithSize:(id)objView
{
UIFont *font= (UIFont *)[objView valueForKey:@"font"];
return [[objView text] boundingRectWithSize:CGSizeMake([objView bounds].size.width, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading)
attributes:@{ NSFontAttributeName : font}//Issue in this line
context: nil];
}

关于ios - 类型为 'CFTypeRef _Nullable'(又名 'const void *')的集合元素不是 Objective-C 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37807859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com