首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NSString sizeWithAttributes在iOS 12上崩溃

NSString sizeWithAttributes是一个用于计算字符串在指定字体和字号下的尺寸的方法。然而,在iOS 12上使用该方法可能会导致崩溃。

在iOS 12之前的版本中,我们可以使用该方法来获取字符串的尺寸,示例代码如下:

代码语言:txt
复制
NSString *text = @"Hello, World!";
UIFont *font = [UIFont systemFontOfSize:14.0];
CGSize textSize = [text sizeWithAttributes:@{NSFontAttributeName: font}];

然而,在iOS 12上,使用该方法可能会导致以下错误:

代码语言:txt
复制
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteAttributedString sizeWithAttributes:]: unrecognized selector sent to instance 0x7ff3b3d4b990'

这是因为在iOS 12中,该方法已被废弃,并且在NSAttributedString类中实现。因此,我们需要对代码进行修改,使用NSAttributedString来计算字符串的尺寸,示例代码如下:

代码语言:txt
复制
NSString *text = @"Hello, World!";
UIFont *font = [UIFont systemFontOfSize:14.0];
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: font}];
CGSize textSize = [attributedText size];

在这个示例中,我们首先创建了一个NSAttributedString对象,将字符串和字体属性传递给它。然后,我们可以使用size方法来获取字符串的尺寸。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/umeng_push)、腾讯云移动直播(https://cloud.tencent.com/product/mlvb)、腾讯云云服务器(https://cloud.tencent.com/product/cvm)。

请注意,以上答案仅针对NSString sizeWithAttributes在iOS 12上崩溃的问题,如果您还有其他问题或需要更多帮助,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • oc深坑測试题及其答案[通俗易懂]

    一、选择题(共80题,每题1分) 1、 不会立马使引用计数器改变的是: 答案:(C) A、release B、alloc C、autorelease D、retain 2、 在OC中类的接口声明keyword为: 答案:(B) A、@import B、@interface C、@implemention D、@protocol 3、 NSString *name = [[NSString alloc]initWithString:@”张三”];NSLog(@”%d”,[name retainCount]);上述代码打印结果是: 答案:(A) A、-1 B、0 C、1 D、2 4、 下列选项中所有属于对象的是: 答案:(C) A、我的白色iPhone4s;Mac Mini B、狗;老虎 C、邻居家的猫咪“贝贝”;我的弟弟“张三” D、保时捷;犀利哥 5、 NSDictionary *dict = [NSDictionary dictionaryWithObject:@”a value” forKey:@”aKey”];NSLog(@”%@”,[dict objectForKey:@”aKey”]);[dict release];控制台中打印的最后一条信息会是: 答案:(C) A、a value B、aKey : a value C、崩溃信息 D、a value : aKey 6、 现有例如以下集合,能准确删除“张三”的代码是:NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@”张三”,@”左护法”,@”李四”,@”右使”,@”唐sir”,@”老大哥”, nil]; 答案:(A) A、[peoples removeObjectForKey:@”左护法”]; B、[peoples removeObject:@”张三”]; C、[peoples removeObjectAtIndex:0]; D、[peoples removeAllObjects]; 7、 关于类和对象的概念,下列属于对象的是: 答案:(C) A、奥迪A6 B、保龄球 C、世界冠军刘翔 D、西红柿 8、 下面说法不对的是: 答案:(A) A、nonatomic:提供多线程保护,提高性能,在没有使用多线程的编程中能够选择使用。 B、assign:属性默认值。说明设置器直接进行赋值。针对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char)等等。

    03

    cocos2d-x 2.x版本接入bugly的总结

    最开始项目使用的是自己DIY的很简陋的上报系统,后来改成google breakpad来上报,发现其实都做的不太理想,游戏引擎因为版本历史问题存在一些崩溃问题。后来3.x接入了bugly,我这边抽了几天时间也准备接入,在接入bugly之前我是想用BugTags的,说实话我特别喜欢也为这款产品点赞(它的技术人员、客服人员响应速度和服务都是很赞的,最开始公司总结5个人,我也担任过客服的角色去跟用户沟通知道这其中的不易),但是毕竟它目前为止对NDK以及Lua方面支持的比较弱,而且截图时还存在黑屏的现象,对非原生的应用不太友好,所以后来还是放弃了,转入对C++崩溃捕获更为专业的Bugly。

    00
    领券