没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
关于 iOS 64 位编程的建议
Apple 下发了支持 64 位的最后通牒:
As we announced in October, beginning February 1, 2015 new iOS apps submitted to the
App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June
1, 2015 app updates will also need to follow the same requirements.
官网文档地址:https://developer.apple.com/library/ios/documentation/
General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/
ConvertingYourAppto64-Bit.html#//apple_ref/doc/uid/TP40013501-CH3-SW1
早应该做的适配终于要开始动工了,苦了 64 位的 CPU 运行了这么久 32 位的程序。前段时
间公司项目完成了 64-bit 包的适配,本没那么复杂的事被无数不标准的老代码搅和的不轻,
总结几个 Tip 共勉。
Tips
拒绝基本数据类型和隐式转换
首当其冲的就是基本类型,比如下面 4 个类型在 32-bit 和 64-bit 下分别是多长呢?
?
1
2
3
4
size_t s1 =sizeof(int);
size_t s2 =sizeof(long);
size_t s3 =sizeof(float);
size_t s4 =sizeof(double);
32-bit 下:4, 4, 4, 8;64-bit 下:4, 8, 4, 8
(PS: 这个结果随编译器,换其他平台可不一定)
它们的长度变化可能并非我们对 64-bit 长度加倍的预期,所以说,程序中出现 sizeof 的代
码多看两眼。而且,除非你明确知道自己在做什么,应该使用下面的类型代替基本类型:
int -> NSInteger
unsigned -> NSUInteger
float -> CGFloat
动画时间 -> NSTimeInterval
…
这些都是 SDK 中定义的类型,而我们大部分时间都在跟 SDK 的 API 们打交道,使用它们
能将类型转换的影响降低很多。
再比如说下面的代码:
?
1
2
3
4
NSArray *items = @[<a href="http://www.jobbole.com/members/1/">@1</a>, @2, @3];
for (int i = -1; i < items.count; i++) {
NSLog(@"%d", i);
}
资源评论
- 趁早2015-12-21还不错,很有用
- 海阔天空03212020-09-27看看,非常好的学习资料
- 付剑在哪2017-09-15不错不错,收藏了,学习
- abcd87953532015-01-22非常好的学习资料,谢谢
零度的忧伤
- 粉丝: 1
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功