首页
学习
活动
专区
工具
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上崩溃的问题,如果您还有其他问题或需要更多帮助,请随时提问。

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

相关·内容

GCDAsyncSocket iOS15 出现 - 崩溃排查笔记

本文会通过对 NSThread 的原理进行分析,对 iOS 15 开始出现的 [_NSThreadPerformInfo dealloc] 相关崩溃进行定位,并提供相应的解决方案 一、背景 从 iOS...15.0 Beta5 开始,集成开源库 GCDAsyncSocket 的 APP 开始出现 -[_NSThreadPerformInfo dealloc] 相关的崩溃 Crash on iOS 15.0...通过前面的分析,我们可以注意到,系统库必须完成以下两个任务: 1、另外的线程执行代码 2、阻塞当前线程,直到另一个线程执行完毕时恢复执行 本段内容是建立iOS 12.4.6 (16G183) 系统版本上面进行分析...onThread:(NSThread *)thr withObject:(nullable id)arg waitUntilDone:(BOOL)wait modes:(nullable NSArray *)array API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0)); 七、解决方案 因为崩溃的原因是调用performSelector

3.4K71

怎样ios架app

在上架App之前想要 真机测试的同学 请查看 iOS- 最全的真机测试教程 里面包含怎么让多台电脑同时 架App和同时真机调试。...P12文件的使用详解因为最近更新了Xcode 8 ,证书的创建都大同小异,只是Xcode 8中的设置有一些变化,我就在下面补充,如有什么疑问,请联系我。。...如果安装不,可以直接将证书文件拖拽到钥匙串访问的列表中 **重点: 一般一个开发者帐号创建一个发布证书就够了,如果以后需要在其他电脑架App,只需要在钥匙串访问中创建p12文件,把p12文件安装到其他电脑...请查看iOS- 最全的真机测试教程 里面包含怎么让多台电脑同时 架App和同时真机调试。...证书我们这边可以借助辅助工具appuploaderAppuploader可以辅助Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows

48520

Flutter混合项目 iOS14启动崩溃处理方法

现象 最近在开发flutter和iOS混合项目时,遇到真机调试连接xcode启动项目,断开后,打开App直接崩溃,版本为iOS14+。...模式 线上 否 release fir/蒲公英 是 debug xcode 是(断开xcode后再打开app) debug 原因 闪退的原因是因为 Flutter SDK, Flutter 官方对 iOS14...进行了说明:Flutter官网说明链接1 大致意思就是说,如果我们 iOS14 的真机上安装了 debug模式 编译出来的 flutter 应用,那么断开编译安装连接后,将无法从桌面上打开该应用程序...packages/flutter_tools/bin/xcode_backend.sh 这里采用的最后一种方式,不更改XCode编译模式,试过可行,不过这会改变原来debug的build模式,不过要记得需要的时候改回来就行...6a6a371f56c0d63ebbb7433dbe7ecb2a.png] 补充: 如果在上面文件中找不到图上的方法,可能不同flutter版本位置不同的原因, 目前我的版本是Flutter 2.8.1, 可以

3.7K20

ios系统实现更改IP地址

然而,iOS系统,更改IP地址并不像在其他平台上那么容易。因此,本文将分享一种简单的方法,帮助您在iOS系统免费更改手机的IP地址。...iOS系统,我们可以通过使用动态ip(虚拟专用网络)来更改手机的IP地址。...避免使用敏感信息(如银行账号、密码等)时连接到公共WiFi的动态ip服务,以防止信息泄露或被黑客攻击。 iOS系统实现免费更改手机IP地址并不困难。...然而,使用动态ip时,请确保选择可靠的服务提供商,并遵守法律法规和服务条款。此外,对于一些敏感信息的处理,还需要谨慎选择连接环境,以确保数据的安全性。...希望本文分享的方法对于需要在iOS系统更改IP地址的用户有所帮助。让我们保护隐私和绕过限制方面,更灵活自由地使用我们的iOS设备!

81720

iOS 开发:『Crash 防护系统』(二)KVO 防护

重复移除多次,移除次数多于添加次数,导致崩溃。 重复添加多次,虽然不会崩溃,但是发生改变时,也同时会被观察多次。 被观察者提前被释放,被观察者 dealloc 时仍然注册着 KVO,导致崩溃。...例如:被观察者是局部变量的情况(iOS 10 及之前会崩溃)。...观察键值改变时:同样通过关系哈希表判断,将改变操作分发到原有的观察者。 另外,为了避免被观察者提前被释放,被观察者 dealloc 时仍然注册着 KVO 导致崩溃。...[self testKVOCrash11]; // 1.2 重复移除多次,移除次数多于添加次数,导致崩溃 // [self testKVOCrash12]; // 1.3...deallocated while key value observers were still registered with it. // iOS 10 及以下会导致崩溃iOS 11 之后就不会崩溃

4.2K41

FlutterMac搭建IOS开发环境

命令窗口执行以下代码完成安装: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh...检测是否配置成功; 命令行执行 flutter -h; 如果能出来一些命令说明 Flutter SDK 配置成功,如果提示 Flutter 不是内置命令之类的错误的话则没有配置成功。 3....usbmuxd brew link usbmuxd brew install --HEAD libimobiledevice brew install ideviceinstaller brew install ios-deploy... Vscode 中配置 开发 Flutter 项目 1. 安装 Flutter 插件 ? 2. 安装 Dart 插件 ? 3....运行 Flutter 项目 命令行输入flutter run r 键: 点击后重新加载; p 键: 显示网格; o 键: 切换 android 和 ios 的预览模式; q 键: 退出调试预览模式

1.4K20

你可曾想过iOS跑Linux?

你可曾想过IOS设备运行Linux系统?或者用shell来传输文件、编写脚本,又或者使用Vi来开发代码?...流程 想要在IOS设备安装iSH,首先需要安装TestFlight,有了它呢就能在设备安装测试版的程序了,美滋滋。...通过TestFlight安装iSH 一旦安装了iSH,就可以IOS设备正常打开了,程序会有ash shell,但是可以使用APK包管理器执行相关命令以及安装其他的包。 ?...(这些都可以文末的内置命令列表中查看) ? wget和Vi的使用界面 使用APKiSH中安装软件 Alpine Linux使用APK包管理器来进行相应程序的安装。...iSH和iCloud之间传输文件 现在,有了iSH就可以通过IOS设备进行实际的开发以及测试工作了,因此,通过iCloud将文件传输至iSH也是非常容易的。

3.7K20

安卓手机或Win电脑同步iOS的日历

说说我的需求:我平时都是我的iPad添加我日常的日程,但是如果要到电脑或安卓手机上也有同样的日历就比较不方便。...有想过去试一下多平台的日历软件,但都没有iOS的日历那么强大和直观,但目前网上的安卓日历软件大都不能与iCloud同步,于是我找到一些能用的安卓APP: SOL日历(早已不更新) Sunrise(已经被微软收购...然后苹果手机上开始登陆网页。 网址如下:https://appleid.apple.com 第二步,登陆Apple 账户。这一步也一定要在一个苹果设备登陆你的苹果ID才可以启动双重认证。...这个密码就是安卓要输入的密码了。 更多详情参照:安卓手机如何同步共享苹果日历?

4K20

扒虫篇-崩溃日志解读及Crash收集

什么是崩溃日志,从哪里能得它 iOS设备的应用闪退时,操作系统会生成一个崩溃报告,也叫崩溃日志,保存在设备崩溃日志上有很多有用的信息,包括应用是什么情况下闪退的。...所以 为了更好的分析崩溃原因,每次架APP的时候,应该保留对应的app文件和dsym文件。...收集崩溃日志 获取崩溃信息方式 iOS中获取崩溃信息的方式有很多,比较常见的是使用友盟、云测、百度、Crashlytics等第三方分析工具,或者自己收集崩溃信息并上传公司服务器。...iOS中, 收集Crash主要通过两种方式, 一种是信号量机制,因为crash通常会发出信号量,标明某某应用崩溃了, 另一种方式是每一个应用都有一个crash handle, 即崩溃钩子, 每当程序崩溃时...---- 本文参考文章: 关于崩溃日志解读很详细很棒的的一篇文章 iOS被开发者遗忘角落的NSException-其实它很强大 http://blog.guoguoday.com/2015/03

2.6K10

Android和iOS设置手机ip详细教程

今天我们将分享一个关于如何在Android和iOS设备设置手机ip(Layer 2 Tunneling Protocol)的简易教程。...至此,你已成功设置手机ip服务器Android设备。...三、iOS 设置步骤 步骤1 : 打开 “设置” 应用 步骤3 : “通用”选项下找到并点击 “服务器” 歩驟4 : 点击右上角 “+ 添加虚拟专用网络配置文件” 输入以下信息: 类型:“IPSec...发送所有流量 :选择此选项以将所有设备的网络数据发送通过虚拟专用网络连接。...现在你已经成功设置了手机IPiOS设备。 本文向大家分享了如何轻松地Android和iOS设备中设置手机ip。希望这篇教程对于那些想要探索并尝试使用ip服务器进行互联网连接的用户有所帮助!

38230

如何使用MEATiOS设备采集取证信息

该工具旨在帮助安全取证人员iOS设备执行不同类型的信息采集任务,将来该工具会添加针对Android设备的支持。...工具要求 Windows或Linux系统 Python 3.7.4或7.2环境 pip包,具体参考txt 已测试的平台 该工具的当前版本已在iPhone X iOS 13.3和iPhone XS iOS...iOS设备执行信息采集 -filesystem 执行文件系统采集 -filesystemPath 文件系统路径,需配合--filesystem...设备-逻辑采集 MEAT使用逻辑采集功能,将指示工具通过越狱设备的AFC提取可访问的文件和文件夹。...设备-文件系统 前提要求:已越狱的iOS设备、通过Cydia安装AFC2、Apple File Conduit 2 MEAT使用文件系统采集功能,可以允许该工具开启AFC2服务,并将目标设备所有的文件和文件夹拷贝至我们的主机系统中

1.6K10

RunLoop总结:RunLoop的应用场景(五)阻止App崩溃一次

(简单介绍了下iOS 中Crash 的一些知识。)...IOS程序异常crash捕获与拦截 (我下面的Demo 就是在这部分代码做了简化,以方便理解) 原理 iOS应用崩溃,常见的崩溃信息有EXC_BAD_ACCESS、SIGABRT XXXXXXX,而这里分为两种情况...我们收集App崩溃信息时,需要添加一个函数 NSSetUncaughtExceptionHandler(&HandleException),参数 是一个回调函数,回调函数里获取到异常的原因,当前的堆栈信息等保存到...*message = [NSString stringWithFormat:@"崩溃原因如下:\n%@\n%@", [exception reason...第五步,写一段会导致崩溃的代码 我是ViewController 中添加了一个点击事件,弄了一个数组越界的Bug: - (void)touchesBegan:(NSSet *)touches

1.5K31
领券