Converting Your App to a 64-Bit Binary
这里概括一下,创建同时支持32-bit和64-bit运行时环境app步骤
安装Xcode 5.0.1
打开我们的工程.Xcode提示你升级你的工程,升级过程中,会产生一些新的错误和警告。这些错误和警告在我们编译64-bit的app是至关重要的
将工程的最低支持iOS版本升级至5.1.1.如果我们支持的系统版本低于5.1,我们将不能构建64-bit的工程
将build setting->Architectures改成“Standard Architectures (including 64-bit).”
升级应用支持64-bit运行时环境虽然编译错误和警告可以帮助我们简化这项工作,但是不能帮助我们全部解决所以问题,我们可以i这份文档提到的注意点针对我们的代码...
点我阅读更多...
Major 64-Bit Changes
数据类型的变化
在C和Objective-C语言里,每个平台(编译器)都自己定义了内建数据类型的一些内存属性(大小,对齐方式), 并没有一个统一的标准。这样做的好处是在于在语言标准的的严格定义下,每个平台可以让数值在操作系统和硬件下更好的适配。 iOS 64-bit 运行时也对很多内建数据类型的大小做了改变。在上层,很多 Cocoa Touch frameworks 使用的数据类型也做了改变。
ILP32和LP64
32-bit运行时表示为ILP32
其中,I表示整型;L表示长整型;P代表指针;ILP32表示在32-bit运行是里,整型、长整型、指针时32-bit长度
同理LP64则表示在64-bit运行时里 整型是32-bit长度;长整型、指针为64-bit长度
下表描述了...
点我阅读更多...
About 64-Bit Cocoa Touch Apps
随着桌面操作系统由32-bit到64-bit的过渡,64-bit的app的出现也在被OS的发展驱动着。现在,iOS的系统架构和桌面系统的架构也有很多相同的地方。从iOS7的A7处理器开始,我们就可以build支持64-bit处理器的app了。当app支持了64bit后在同样的机型上可以获取更高的性能
简介
apple 的A7处理器支持两个不同的指令集。一个是由apple早前处理器支持的32bit ARM指令集;另一个则是一个全新的64-bit ARM架构处理器。64-bit架构最重要的改进不局限于支持更大的地址空间,更是提供一个全新的The 64-bit architecture supports a new and streamlined instruction set that ...
点我阅读更多...
iOS特性修饰符(strong、weak...)
iOS特性在修饰的时候我们经常会和下面几个修饰符打交道
strong、retain、assign、unsafe_unretained、weak、nonatomic、atomic、copy
其中与内存有关的有strong、retain、assign、unsafe_unretained、weak,在使用过程中稍有不慎就会陷入内存泄露,搞清楚他们的作用很有必要
在描述之前我们需要补充说明一些概念
//修饰变量我们用__strong形式的修饰符
__strong id a = nil;
__unsafe_unretained id b = nil;
__weak id c = nil;
//修饰特性我们用不带下划线的,表示一样
@property (nonato...
点我阅读更多...
iOS逆向工程-dumpdecrypted砸壳
近期想打开大门学习下同行们的iOS开发,于是想到了可以针对一些有特色的应用进行逆向工程,然后着重学习下该应用的设计架构。
由于自己也是初学者,下来就把自己躺过的坑记录在这里方便后续查阅。
逆向工程需要的工具
dumpdecrypted
dumpdecrypted是一个砸壳工具。因为appstore安装包apple会为应用加上一层壳,所以在逆向之前我们需要先对应用进行砸壳。官方对dumpdecrypted描述是
Dumps decrypted iPhone Applications to a file
详细信息可以参考dumpdecrypted
class-dump
为什么是class-dump
It’s a great too...
点我阅读更多...
常用的图形变换
坐标系
坐标系在开发过程中常分为世界坐标系和屏幕坐标系
通常我们的坐标系采用右手型,下图展示了左手坐标系和右手坐标系的区别
左手坐标系,伸出左手用大拇指指向方向轴的方向,其余4个手指自然弯曲,则4指弯曲方向为角度变化的正方向
右手坐标系和左手坐标系对称,只需将左右换成右手即可
iOS采用的是左手坐标系
向量的变换
图像上每个点的位置可以看成一个向量n维向量,取决于图像的空间。所以对图像的变换可以等价于对向量的变换,研究向量的变换可以让我们更直观的了解图像变换的原理
向量的平移(对坐标系内某点得移动)
向量的缩放
X饭方向缩放a倍,Y方向缩放b倍,则有
向量的旋转
二位平面的向量旋转,即可以表示为三维空间的向量绕Z轴的旋转
如图:
将向量x在...
点我阅读更多...
获取iOS设备信息
由于最近要做iPhone6和iPhone6+的适配工作,所以难免会需要对设备型号进行判断,就借此机会总结下判断设备的方法
获取iOS设备信息
1.根据屏幕宽度大小进行判断
#define iPhone6 ([UIScreen instancesRespondToSelector:@selector( currentMode )] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO)
#define iPhone6Plus ([UIScreen instancesRespondToSelector:@selector( currentMode ...
点我阅读更多...