arm64的适配问题,这次真醉了
写过tableView的童鞋都知道,有必须的两个代理方法要实现,还有几个选择实现的。
必须实现的代理方法:
~设置行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
~初始化并设置cell样式及内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
选择实现的代理方法:
~设置列表分组数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; // Default is 1 if not implemented
~设置每行高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
当然还有其他的,这里就不在粘贴了,注意这里列出的最后一个可选代理方法,这是个隐藏已久的坑。今天就来说说这个
话说今天处理iPhone 64位系统出现的弹框问题,在首次安装程序时会弹出警告的问题。
弹出警告的原因是程序在编写时,未添加ARM给64的指令集,也就是“arm64”,用到该指令集的手机类型如下列出
iPhone6s、iphone6s plus
iPhone6、iPhone6 plus
iPhone5S
iPad Air、iPad mini2(iPad mini with Retina Display)
注:摘自iOS中的armv7,armv7s,arm64,i386,x86_64都是什么
解决方法就是添加arm64到项目配置中:路径是Targate->Build Settings->Architechtures, 配置如下
添加之前的配置:

添加之后的配置:

但是,这只是个开始,Command+B之后,竟然Build failed了。
程序不仅有眼前的bug,还有远方未知的坑和改需求,但眼前的bug要先改完。
这次failed跟以往的不一样,先来看一段代码
NSInteger numberOfArray = [testDic[@"testId"] count];
return numberOfArray;
这时段示例代码,假设有个字典键“testId”对应的值是一个数组,使用“[]”语法取数组的count值,按说是不应该出错的
但是这里确实出错了,提示大致意思是:不能有多个方法访问count属性
必须写成下面的形式才可以通过:
NSInteger numberOfArray = [((NSArray *)testDic[@"testId"]) count]; //此处强转,只取数组的个数没问题,如果改数组就会出问题
或者
NSArray *testArray = testDic[@"testId"];
NSInteger numberOfArray = [testArray count];
没办法,只能一个一个修改。去除左边框框里的所有红色后,终于Build Succeeded
------------------------------------------------------------
进入后感觉如释重负,终于又干掉一个bug,于是像往常一样点了点几个主界面。
点到一个列表时,列表和我的心情都简直了
arm64的适配问题,这次真醉了的更多相关文章
- Xcode8适配iOS10.1真机测试
将10.1测试包相关文件存放到指定位置,如图步骤提示: 解压文件:
- iPhone 6 & iPhone 6 Plus适配
转载请注明出处: http://www.cnblogs.com/dokaygang128/p/4049461.html Apple 今年发布了两款新的iPhone机器,iPhone 6 和iPhone ...
- Web App适配iPhoneX
前言 Iphone每次退出新尺寸的手机都会掀起一番适配风波,这次没有下巴但有刘海的iPhoneX更是如此,网传横屏下的适配动画更是令不少人汗颜. 其实对于Native App来说,适配并不算困难(当然 ...
- 2014 Hangjs 见闻流水账第二天
前言 第一天传送门: 2014 Hangjs 见闻流水账第一天 写作风格跟第一天还是一样的. Slide 每个slide我都会根据自己的理解重新命名一次,用于表达自己的第一看法,主观意见,不喜可吐槽, ...
- 一些baidu面经
百度问的一些问题供参考: 1. epoll 和 select,epoll 两种模式,阻塞非阻塞: 2. 两个严格递增链表找出相同的元素组成新的链表: ref1 ref 3. 网络传输中如何传送一个 ...
- 让“不确定性”变得有“弹性”?基于弹性容器的AI评测实践
0. 前言 AI的场景丰富多彩,AI的评价方法百花齐放,这对于设计一套更通用的评测框架来说,是一个极大的挑战,需要兼顾不同的协议,不同的模型环境,甚至是不同的操作系统.本文分享了我们在AI评测路上的一 ...
- BPM配置故事之案例11-操作外部数据源
小明:可以获取ERP数据了-- 老李:哦,这么快?小伙子,我非常看好你,来来,别急着走,再陪我聊会-- 小明:--您老人家不是又要改流程吧? 老李:没有没有,哎嘿嘿嘿,我们这不都是为公司效率着想嘛,这 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- ios .a和.framework
创建Aggregate来合并模拟器和真机通用的framework 然后在Build Phases下New Run Script Phase创建合并脚本: # Constants SF_TARGET_N ...
随机推荐
- keypad代码分析
keypad作为input设备注册到内核,与platform总线驱动match. 1.描述一个输入设备对象 static struct input_dev *kpd_input_dev; 告知输入子系 ...
- Java HashMap中在resize()时候的rehash,即再哈希法的理解
HashMap的扩容机制---resize() 虽然在hashmap的原理里面有这段,但是这个单独拿出来讲rehash或者resize()也是极好的. 什么时候扩容:当向容器添加元素的时候,会判断当前 ...
- 支付宝热补丁技术— AndFix原理[阿里Hao]
本文由嵌入式企鹅圈原创团队成员.阿里资深project师Hao分享. 上次我们介绍了用dexposed方案实施热补丁的原理.它本质上就是hook要改动的函数.这样一来在正式版本号公布时就不能直接拿热补 ...
- poj 1515+poj 1438(边双连通)
题目链接:http://poj.org/problem?id=1515 思路:题目的意思是说将一个无向图改成有向图,使其成为强连通,输出所有的边.我们可以求无向图的边双连通分量,对于同一个双连通分量, ...
- cookie细节
设置cookie时,不像设置session,可以马上生效,它的生效时间是下一次请求页面.
- python3----基础函数的参数是可变参数,将传进来的参数转成列表
def myFun(*argments): values = [x for x in argments] print(values) myFun(1,2,3,4,5,6) result: [1, 2, ...
- 去OpenCVManager,大部分为转载,仅当自己学习使用
去OpenCVManager方法,可以参考这篇博客http://blog.csdn.net/yanzi1225627/article/details/27863615,可以用,挺好的.我这里只是做个总 ...
- Laravel5.1 Middleware中间件(初级)
中间件?什么鬼? 大家第一次接触这个词都会有这么个疑问,但它其实没那么神秘. 一句话就可以解释它:过滤HTTP请求专用机制. 为什么要使用中间件? 过滤HTTP请求是可以写在别的地方,比如说控制器中 ...
- Android无线测试之—UiAutomator工程建立
一.环境要求: 已经搭建好了Android UiAotomator测试环境 二.新建测试工程: 1.打开eclipse,首次打开指定一个工作空间 2.新建一个Java Project,名叫:Demo1 ...
- Python类基础知识(面向对象基础)
#首先 我们需要了解 面向过程是什么 面向对象是什么 我们为什么需要使用面向对象 面向过程:根据业务逻辑从上到下写垒代码 面向对象:根据代码对函数进行分类和封装 区别:解决问题的逻辑不同,但是都能解决 ...