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 ...
随机推荐
- Kafka学习(一)kafka指南(about云翻译)
kafka 权威指南中文版 问题导读 1. 为什么数据管道是数据驱动企业的一个关键组成部分? 2. 发布/订阅消息的概念及其重要性是什么? 第一章 初识 kafka 企业是由数据驱动的.我们获取信息, ...
- 这篇文章主要为大家详细介绍了jQuery密码强度验证控件使用详解的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了jQuery密码强度验证控件,供大家参考,具体内容如下 <html> <head> <meta http-equiv="Cont ...
- Android 版本更新升级
推荐一款很好的版本升级开源框架: https://github.com/WVector/AppUpdate 个人地址:总结https://gitee.com/anan9303/AppVersionUp ...
- EasyPlayer.js网页全终端播放器安装使用文档
EasyPlayer.js 集 rtmp, hls, flv, websocket 于一身的网页直播/点播播放器, 使用简单, 功能强大 属性(Property) video-url 视频流地址 St ...
- websocket Session 不支持序列化
这是我本来的打算,把socket session 进行序列化分布式存储! 呵呵 然而现实很残酷,这b东西不支持序列化! 解决办法:
- 《UNIX网络编程》 -- 第五章
str_cli 和 str_echo 函数 需要先弄清楚 3.9 readn.writen 和 readline 函数 str_cli void str_cli(FILE *fp, int sockf ...
- A Universally Unique IDentifier (UUID) URN Namespace
w Network Working Group P. Leach Request for Comments: 4122 Microsoft Category: Standards Track M. M ...
- pycharm 调试django 服务端断点调试
django runserver 服务端断电调试 D:\model\gitlab\eebo.ehr.analysis\venv\Scripts\python.exe "C:\Program ...
- javascript基础(整理自手册网)
变量 person=null; //清空变量 carname="Volvo"; //赋值给未声明的变量, 它将会变成全局变量, 即使在函数内部 window.carnam; //所 ...
- MySQL 的约束
约束是添加在列上, 用来约束列的! 1. 主键约束(表中的某行的唯一标识) 主键的特点: 非空 唯一 被引用 创建表时, 指定主键的两种方式: // 需求: 指定 sid 列为主键列, 即为 sid ...