Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案

9月14日凌晨1点,苹果推送了iOS10,于是一上班就迅速升级了iOS10,然后坑就这样开始了。。。

问题1

首先是xcode的问题,发现xcode升级到8才能真机运行,于是先了解了下iOS10的适配。

有这个iOS10适配总结,还有这个iOS10适配问题收集整理,还有这个iOS10适配,还有很多其他的。

这个好办,取消nullabl关键字就好。

然后另一个蛋疼的问题来了

问题二,编译不过的问题

蛋疼的clang报错le..

这个是详细的信息,一堆莫名其妙的东西出来了。

隐隐约约感觉是WGS84T0GCJ02.o这个实现文件的问题,然后进行删除,在run,居然成功了。

所以原因暂定为对一些c函数的支持不好。

如果发现项目奔溃的,该去检查老旧模块的一些老文件。没有什么好的解决办法,去排查警告下的那些类吧。

问题三,适配问题(如何解决)

用iOS10的同学都看到了适配的问题,因为iOS10更换了系统字体,之前有看到文章说在原来的基础上加5个像素的宽度,其实这个是不够准确详细的,在Xcode8的xib下测了一下不同长度需要的宽度。以下以15号字体为例:

Xcode8下完全展示15号字体所需的frame最小宽度

字数超过20后,加5也不能满足了。

写了个方法,调用NSStringDrawing框架下获取文字宽带的方法,结果发现

- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"testLab width = %f",_testLab.frame.size.width);
[self getStringWidth:@"一一一一一一一一一一" front:[UIFont systemFontOfSize:10]];
}
- (void)getStringWidth:(NSString *)str front:(UIFont *)strFront
{
NSDictionary *attributes =[NSDictionary dictionaryWithObjectsAndKeys:strFront, NSFontAttributeName, nil];
CGSize stringSize = [str sizeWithAttributes:attributes];// 规定字符字体获取字符串Size,再获取其宽度。
CGFloat width = stringSize.width;
NSLog(@" width= %f",width);
}

xcode7下是这样的(托一个小伙伴运行了下)

但是xcode8下是这样的

sizeWithAttributes这个方法不会撒谎,所以调这个方法的基本都没问题。

但是如果简单的根据字体个数来算lable的宽度,font * 字数,那就可以根据字数适当加几个坐标。

以上所述是小编给大家介绍的Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 详解iOS 关于字体根据不同屏幕尺寸等比适配的问题

    背景 去年的六月份开始了一个新的项目,此项目支持的设备从4S开始一直到6+,也就是说屏幕的尺寸最小的320x480 最大的1242x2208 (不过目前好像大部分的App都会这样去支持),而客户那边有一个奇葩要求 就是所有的控件布局必须依据屏幕的尺寸等比缩放.当然这个对于iOS的开发来说的话还是比较容易实现的(iOS有个Autoresizing刚好是依据父视图的大小作等比缩放的). 项目就这样愉快的进行,然而当项目快要结束的时候,客户愤怒质问我们为什么字体大小没有根据屏幕作等比适配,再有几天的时

  • iOS10 App适配权限 Push Notifications 字体Frame 遇到的问题

    添加配置权限 <!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>"xx"想使用您的相册,需要您的允许</string> <!-- 相机 --> <key>NSCameraUsageDescription</key> <string>"xx"想使用您的相机,需要您的允许</strin

  • Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案

    9月14日凌晨1点,苹果推送了iOS10,于是一上班就迅速升级了iOS10,然后坑就这样开始了... 问题1 首先是xcode的问题,发现xcode升级到8才能真机运行,于是先了解了下iOS10的适配. 有这个iOS10适配总结,还有这个iOS10适配问题收集整理,还有这个iOS10适配,还有很多其他的. 这个好办,取消nullabl关键字就好. 然后另一个蛋疼的问题来了 问题二,编译不过的问题 蛋疼的clang报错le.. 这个是详细的信息,一堆莫名其妙的东西出来了. 隐隐约约感觉是WGS84

  • Python中如何处理常见报错

    1.首先是常见的语法错误.2.然后是基础语法中的常见异常.3.最后是操作文件过程中的常见异常,这部分也是重难点知识. 这是我们在终端比较常见的报错信息: 按照 Python 官方文档的定义,我们在终端见到的“错误消息”至少可以被分为两类:语法错误(syntax errors)和异常(exceptions) . 语法错误(syntax errors)是初学者最容易犯的错误,简单来说就是代码不符合 Python 的基本语法规范而导致程序出了问题. 当你的代码完全符合 Python 的语法规范后,就该

  • 超全面python常见报错以及解决方案梳理必收藏

    AttribteError: 'module' object has no attribute xxx' 描述:模块没有相关属性.可能出现的原因: 1.命名.py文件时,使用了Python保留字或者与模块名等相同. 解决:修改文件名 2.pyc文件中缓存了没有更新的代码. 解决:删除该库的.pyc 文件 AttributeError: 'Obj' object has no attribute 'attr' 描述:对象没有相关属性.可能出现的原因: 1.Python内置对象没有属性. 解决:去除

  • Python常见报错解决方案总结(新手拯救指南)

    目录 前言 01缩进错误(IndentationError) 02Tab 和空格混用(TabError) 03语法错误(SyntaxError) 04变量名错误(NameErro) 05索引错误(IndexError) 06键错误(KeyError) 07类型错误(TypeError) 08属性错误(AttributeError) 总结 前言 如果说写代码最害怕什么,那无疑是Bug.而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向.今天,我们就做了一期

  • MySQL安装常见报错处理方法总结大全

    目录 前言 1.无法启动处理,错误1053 1.1 结束进程 1.2 更改网络服务 1.3 删除服务 2.Winwods安装初始化报错 3.Centos环境rpm初始化MySQL报错 4.MySQL8安装后无法登陆 总结 前言 本文总结了MySQL安装过程常见故障处理,分享给大家 1.无法启动处理,错误1053 Windows 无法启动Mysql服务 错误1053:服务没有及时响应启动或控制请求 1.1 结束进程 处理方法:1.在命令行中敲入tasklist查看进程2.根据进程名杀死进程task

  • R语言初学者的一些常见报错指南

    目录 前言 第一类:工作路径问题 未设定工作路径 当前路径需要修改 第二类:对象名或函数名问题 未找到函数名报错 函数名大小写问题 未找到赋值对象 对象赋值不规范 第三类:符号问题 中文逗号报错 绝对路径的设定符号使用不规范 缺少括号或引号 赋值号报错 必要的引号与括号 第四类:中文注释乱码 第五类:数据集或变量长度不同 总结 前言 与Python.C语言等相比,R语言可以说是比较容易的编程语言之一(更适合数据探索和科研).尽管R语言相对简单,但仍给新手小白们带来无数的困难和痛苦.特别是,当你在

  • npm install常见报错以及问题详解

    目录 前言 一.ERESOLVE unable to resolve dependency tree 1.可能性一:镜像源无法访问 2.可能性二:npm版本过低或者过高 3.可能性三:node和npm版本不匹配 二.Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/yarn’ 三.Error: Can’t find Python executable “python”, you can set the PYT

  • 15种 C++ 常见报错原因分析

    目录 1 重定义变量 2  缺少分号 3 数组维数错误 4  关于 if 与 else 5  关于 if 与 else 6  括号匹配错误 7  关于字符串的输入错误 (*) 8  写错函数 / 变量名 本文整合了部分 C/C++ 常见的报错原因,可根据自己的情况,使用目录跳转. 1 重定义变量 #include<bits/stdc++.h> using namespace std; int main() { int a; cin>>a; int a; cout<<a&

  • 详解Maven项目Dependencies常见报错及解决方案

    个人最近项目中所遇到的问题,记录下便自己和同样遇到问题的小伙伴提供一个参考. 通常Maven里报红波浪线的常见问题 ①可能是子工程没有继承父工程 注意父工程中有中对应的module: <groupId>com.fred.parent</groupId> <artifactId>mall</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>

  • Vue常见报错以及解决方案实例总结

    目录 前言 一.报错结构 二.常见问题总结及解决方法 Mixed spaces and tabs Element is missing end tag TypeError: Cannot read properties of undefined (reading '...') TypeError: ...forEach is not a function '...' is not defined / no-undef 总结 前言 写代码的过程中一定会遇到报错,遇到报错不要担心,认真分析就可以解决

随机推荐