64-bit运行时环境和32-bit运行时环境主要有以下两点的不同:
1:数据类型的改变
2:方法调用上的改变
整型数据类型的变化如下
关于字节对齐的概念可以参考如下链接:http://blog.csdn.net/21aspnet/article/details/6729724#comments
浮点型类型的改变如下
:
数据类型的改变可能会为我们的程序带来这些影响:
增加内存压力
64-bit到32-bit数据之间的相互转化
计算可能产生不同的结果
当把一个值从大的数据类型拷贝到小的数据类型,数据可能被截断。(NSInteger -> int)
方法调用上的改变
基于32-bit的CPU和基于64-bit上的CPU有不同数量的寄存器,在方法调用上有不同的协议。因此32-bit和64-bit在汇编层级上是不同的。如果我们在程序中不使用汇编编程,调用协议很少会遇到.
如objc_msgSend的变化:
((id (*)(id, SEL, id))objc_msgSend)(plugin , selector,cmd);
替换成
void (*objcMsgSend)(id, SEL, id) = (void*)objc_msgSend;
objcMsgSend(plugin , selector,cmd);
如何编写健壮的64-bit代码
- 不要将长整型long赋值给整型int (64-bit上会导致数据丢失)
- 不要将指针类型pointer赋值给整型int (64-bit导致地址数据丢失)
- 留意数值计算(掩码计算,无符号整数和有符号整数同时使用等)
- 留意对齐方法带来的变化
- 32-bit到64-bit之间数据转化(通过网络传递的用户数据,可能同时存在于32-bit和64-bit的环境下)
- 重写汇编代码
- 不要在可变参数方法和不可变参数方法之前进行强制转化
具体:http://www.codeceo.com/article/ios-64-bit.html
相关推荐
《优酷 APP 全量支持“暗黑模式” ——设计与技术完整总结》现已发布!设计理念+技术架构+改造实践,全方位解读暗黑模式的技术实现。
总结,"金蝶称重app项目"通过uni-app的高效开发工具,实现了金融股票应用的跨平台构建,展现了金融与技术融合的可能性。该项目的成功,不仅展示了uni-app在金融领域的应用价值,也为其他开发者提供了宝贵的实践经验...
总结,AppWeb是一个强大而灵活的嵌入式Web服务器,其小体积和高效性能使其在嵌入式环境中有广泛的应用前景。结合EJScript和CGI的支持,开发者可以轻松创建动态Web应用,满足各类项目需求。通过简单的安装和配置过程...
总结来说,App.js 是一款强大的移动端应用开发工具,它简化了跨平台开发的流程,让开发者能够高效地创建具备原生体验的移动应用。通过深入理解和熟练运用App.js,开发者可以充分利用其优势,为用户带来优质且便捷的...
【uni-app-video】是一款专为uni-app框架设计的视频播放组件,它支持在后台持续播放音频,这在开发音乐播放应用或有音频背景需求的项目中尤其重要。uni-app作为一个多端开发框架,允许开发者使用一套代码实现跨平台...
以下是APP测试点的全面系统总结,涵盖了多个关键测试类别: 1. **功能性测试**: 功能性测试是基于产品需求文档和软件设计文档创建测试用例的过程。它确保APP的所有功能按照预期工作。这包括对每个功能的详细测试...
uni-app支持多种运行方式,包括真机运行、在微信开发者工具里运行、浏览器运行等。 uni-app的优点是跨端开发,开发者可以使用uni-app开发一个项目,然后发布到多个平台。uni-app还提供了内置组件和拓展组件插件市场...
部署VMware App Volumes的第一步是准备环境,包括安装和支持的Windows服务器操作系统,如Windows Server 2008 R2,以及.NET Framework 3.5 64位版本。另外,还需准备IE浏览器版本9或10,以及Firefox浏览器版本10或11...
总结,APP Inventor 2022离线安装版是面向初级开发者和教育领域的理想选择,它的易用性和离线功能使得任何人都能在任何地方享受编程的乐趣和创造力的释放。无论你是初次接触编程的新手,还是希望扩展技能的专业人士...
此外,App Inventor 2的汉化版(WxBit版)进一步优化了平台,解决了原版中的一些问题,如AI伴侣连接不稳定和升级困难。汉化版还支持HTTPS协议,为在复杂网络环境下的使用提供了安全保障。 对于刚接触App Inventor 2...
总结了3种移动app的性能脚本录制办法,包括 1)LR 11.0 + qfelr11patch4.msp(补丁) 录制 2)LR 12 + LR Mobile Recorder.apk 录制 3)安卓本地模拟器 + winshark 录制 详细介绍前2种。 qfelr11patch4.msp补丁下载...
接下来,我们将重点关注一些常用的APP自动化测试工具: 1. **Appium**:这是一个跨平台的开源工具,支持Android和iOS,使用Java、Python等多种语言编写脚本。其基于Web服务器架构,通过REST接口与客户端交互,执行...
### Android App项目开发步骤总结 #### 一、应用规划 在进行任何开发工作之前,首先需要明确应用的主要功能。这一步骤非常重要,因为它为整个项目的后续工作设定了基础。 - **确定功能:** 应用的功能是核心,...
总结,MATLAB的APP功能为开发者提供了强大的工具,无论你是科研人员还是学生,都可以利用它来创建具有专业级界面的定制应用。通过不断实践和学习,你将能够掌握MATLAB APP Designer的精髓,开发出满足需求的高质量...
总结来说,"苹果app卸载工具"AppCleaner是一款实用的Mac应用管理软件,它简化了卸载过程,确保卸载彻底,同时提供了直观易用的界面。对于希望保持系统清洁、优化磁盘空间的Mac用户来说,AppCleaner无疑是一个不可或...
总结来说,MATLAB App Designer 是一个功能强大的工具,它不仅使得设计美观的 GUI 变得简单,还通过面向对象的方式、丰富的控件库以及对 MVC 设计模式的支持,为用户提供了更加高效和模块化的开发体验。通过上述介绍...
总结来说,uni-app与egg.js的结合为开发者提供了一条高效、灵活的全栈开发路径,无论是前端的交互设计,还是后端的业务处理,都能得到全面的支持。通过学习本教程,你将掌握构建直播APP和小程序的全过程,进一步提升...
总结,App打开小程序是移动互联网时代的一种创新交互模式,它结合了原生App的稳定性和小程序的便捷性,为用户提供了更加丰富的服务场景,同时也为开发者提供了新的业务增长点。通过合理的技术实现和优化,可以有效...
其大气的UI设计、多样的皮肤选择、强大的后端支持和完善的安装教程,使其成为影视APP开发领域的热门选择。通过深入学习和理解这套源码,开发者可以进一步提升自己的技能,并创造出更优秀的影视服务产品。
总结,APP分发系统源码程序结合ThinkPHP框架,提供了一套全面的解决方案,不仅简化了APP的发布流程,还为企业和开发者提供了强大的托管和运营工具。通过详细的安装教程和源代码学习,我们可以深入理解其工作原理,并...