iPhone 32位和64位机器 方法同名导致crash

记录一个坑,每次观看直播,同样的代码,问题表现:
1、iPhone 5c、 iPhone 5、iPhone4s 必crash
2、在iPhone 5s、iPhone 6 ~iPhone 6ps 都表现正常
3、分别在iOS 8、iOS 9、iOS 10 测试过,和系统没关系,和机器有关。

其实找问题是比较蛋疼的,用iPhone 5设备测试每次必crah,而且崩溃栈是UI栈,找到具体的那一行,和整个函数块,可TM的代码很简单完全正确的啊,我靠,这可咋办?

iPhone 32位和64位机器 方法同名导致crash_第1张图片
u=760799591,2848089401&fm=21&gp=0.jpg

找了一俩个小时,实在想不通哪有问题,都TM的打算重写整个视图了,突然点到一个方法,跳到另一个文件,方法同名,看见一丝丝曙光,试着改了下方法名,rebuilding。。。

我了个擦咧,顺畅通过,不crash了。。。。原来是预编译 头文件中有个UIVIew 拓展类有个方法,和目前View的方法同名.....

后来查了下,具体原因是因为 iphone 5s以下都是 32位,而iPhone 5s之后 都是64位了,以前32位优先执行预编译文件中的方法 导致crash ,而64位优化过,优先选本类方法所以没事。

这就是32位与64位机器下差异化 导致的坑,祭奠已逝的乔布斯。。。。

iPhone 32位和64位机器 方法同名导致crash_第2张图片
u=1154958097,1782595073&fm=21&gp=0.jpg

你可能感兴趣的:(iPhone 32位和64位机器 方法同名导致crash)