iOS 7.0 以上一些弃用的系统API替换
2017-07-14 15:28
531 查看
到新公司,接手新项目,结果发现警告 500+ ,于是决定花时间都给去除了。 记录一下一些警告的处理方式吧
'sizeWithFont:constrainedToSize:lineBreakMode:'
is deprecated: first deprecated in iOS 7.0 - Use -boundingRectWithSize:options:attributes:context:
这两个警告是由于使用了系统已经标注 NS_DEPRECATED_IOS (弃用)的API,所以产生警告,警告中也已经提示了,用户可以使用7.0以上新的API替换,具体做法如截图:
![](https://img-blog.csdn.net/20170714145131737)
labelSize = [label.text sizeWithAttributes:@{NSFontAttributeName :label.font}];
// 文字属性,通常这里面需要知道是字体大小 (和旧API所需的一致)
sizeWithFont:constrainedToSize:lineBreakMode:
![](https://img-blog.csdn.net/20170714151533645)
detailsLabelSize = [detailsLabel.text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName
: detailsLabel.font} context:nil].size;
// 参数1: 自适应尺寸,提供一个宽度,去自适应高度
// 参数2:自适应设置 (以行为矩形区域自适应,以字体字形自适应)
// 参数3:文字属性,通常这里面需要知道是字体大小
// 参数4:绘制文本上下文,做底层排版时使用,填nil即可
object file (...)was built for newer iOS version (8.2) than being linked (8.1)
这个警告是因为你引用的文件支持的最低版本为8.2,而你项目中选择的最低支持版本为8.1 。
处理的方式就是提高项目最低的支持版本,或者在 Build Settings - Other linker Flags 增加一个 -w 就可以了
错误如下,这表示是查询
解决方法:
依次 Project -> targets -> Build Setting -> Library Search Paths
删除里面的路径
错误如下, 这表示是查询
解决方法:
依次 Project -> targets -> Build Setting -> Framework Search Paths
删除里面的路径
1、 旧新API替换,文本计算 CGSize
'sizeWithFont:' is deprecated: first deprecated in iOS 7.0 - Use -sizeWithAttributes:'sizeWithFont:constrainedToSize:lineBreakMode:'
is deprecated: first deprecated in iOS 7.0 - Use -boundingRectWithSize:options:attributes:context:
这两个警告是由于使用了系统已经标注 NS_DEPRECATED_IOS (弃用)的API,所以产生警告,警告中也已经提示了,用户可以使用7.0以上新的API替换,具体做法如截图:
sizeWithFont 单行文本计算 CGSize
labelSize = [label.text sizeWithAttributes:@{NSFontAttributeName :label.font}];
// 文字属性,通常这里面需要知道是字体大小 (和旧API所需的一致)
sizeWithFont:constrainedToSize:lineBreakMode:
多行文本计算 CGSize
detailsLabelSize = [detailsLabel.text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName
: detailsLabel.font} context:nil].size;
// 参数1: 自适应尺寸,提供一个宽度,去自适应高度
// 参数2:自适应设置 (以行为矩形区域自适应,以字体字形自适应)
// 参数3:文字属性,通常这里面需要知道是字体大小
// 参数4:绘制文本上下文,做底层排版时使用,填nil即可
object file (...)was built for newer iOS version (8.2) than being linked (8.1)
这个警告是因为你引用的文件支持的最低版本为8.2,而你项目中选择的最低支持版本为8.1 。处理的方式就是提高项目最低的支持版本,或者在 Build Settings - Other linker Flags 增加一个 -w 就可以了
ld: warning: directory not found for option
错误如下,这表示是查询 Library的时候出现的异常。
"directory not found for option '-L/..."
解决方法:
依次 Project -> targets -> Build Setting -> Library Search Paths
删除里面的路径
错误如下, 这表示是查询
Framework的时候出现的异常。
"directory not found for option '-F/..."
解决方法:
依次 Project -> targets -> Build Setting -> Framework Search Paths
删除里面的路径
相关文章推荐
- android 7.0以上共享文件(解决调用系统照相和图片剪切出现的FileUriExposedException崩溃问题)
- iOS编程基础-OC(九)-专家级技巧:使用运行时系统API(续)
- iOS 系统一些识别的代码
- 如何才能系统的学习 iOS 开发,理解一些规则和深层次的机制原理?
- iOS 6.0中UIViewController被弃用的一些方法
- iOS 6.0中UIViewController被弃用的一些方法
- iOS 用自己的方法名替换系统的。
- iOS 7.0--iOS 7.1 API变化
- [iOS]分享一段用系统API生产二维码的代码
- 飞利浦为Hue照明系统发布免费iOS SDK和API
- 获取IOS中一些系统信息
- iOS 6.0中UIViewController被弃用的一些方法
- iOS的一些常见系统Notification(系统消息)
- iOS 6.0 UIViewController被弃用的一些方法
- iOS 6.0中UIViewController被弃用的一些方法
- Android分享文件兼容7.0以上系统
- iOS 6.0中UIViewController被弃用的一些方法
- ios替换app启动图片时系统报错的解决办法
- ASIHTTPRequest 类库在iOS 7.0中,会有一些报错警告,需要稍作修改