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 ...
随机推荐
- out传值
public void Out(out int a, out int b) {//out相当于return返回值 //可以返回多个值 //拿过 ...
- 解决PHP编译cURL的reinstall the libcurl问题
今天正好要用到PHP的curl功能,发现服务器上的PHP并没有配置curl,进而查询PHP官方文档,得知编译PHP时需要带上 –with-curl参数,才能把curl模块编译进去.我现在PHP已经编译 ...
- Mysql 5.7 liunx 忘记密码的补救方法
linux下mysql的root密码忘记解决方 1.修改MySQL的登录设置 # vim /etc/my.cnf 在[mysqld]的段中加上一句: skip-grant-tables 例如: [my ...
- mySQL 开启事件存储过程
怎样在Navicat中设置,是数据库按照记录中的日期更新状态字段 其实这个很常用,比如你网站里的某条记录的日期——比如说数据库中某条活动记录的审核日期字段已经过期,亦即当前时间已经超过审核日期,那么定 ...
- [PHP开发必备] -- 小巧强悍的MYSQL-Front中文版使用教程,附最新版下载地址
PHP开发已经各位工程师轻车熟路的事情,MySQL也是经常都要用的产品,能有一个简单而又强大的管理工具,那可是咱们PHP开发工程师的福气. 下面浪风小园子就为大家介绍下来自国外小巧的MySQL管理工具 ...
- HTTP 请求:GET vs. POST
两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST. GET - 从指定的资源请求数据 POST - 向指定的资源提交要处理的数据 GET 基本上用于从服务器获得(取回)数据.注释 ...
- Split Divisibilities (Project Euler 598)
题目大意: 求将$100!$ 拆成$a*b$的方案数,其中$a<=b$并且它们的约数个数一样多. 思路: 先将$100!$质因数分解, 结果如图: 首先想到一个暴力DP, dp[i][j][k] ...
- linux 下Shell编程(四)
for循环应用实例 for 循环可以对一个记录集中地数据依次集中地数据依次进行处理. #!/bin/bash #4.13.sh for clear #看下图区别 for((i=1:i<1 ...
- 46、PopWindow工具类
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...
- LeetCode Problem 136:Single Number
描述:Given an array of integers, every element appears twice except for one. Find that single one. Not ...