iOS10你掉坑了吗?

 坑1: 系统导航栏上按键消失问题
  坑2: canOpenURL 调用返回NO问题
  坑3: iOS10 权限崩溃问题
  坑4: xib不好用了?别怕看这里!
  坑5: command +/注释失效
  坑6: 打印了一大堆0 1 的东西
坑1: 系统导航栏上按键消失问题

问题:升级iOS10,使用系统导航栏,发现导航栏上按钮全部消失了,无法返回上一级菜单。

原因:iOS10会重新调用原生的导航,覆盖现有的。

解决方案:在基类(BaseViewController)里面添加如下代码

- (void)viewWillDisappear:(BOOL)animated {

    if (IsDeviceVersionIOS10) {
        //相当于刷新NavigationBar
        [self.navigationController setNavigationBarHidden:YES
    animated:NO];
        [self.navigationController setNavigationBarHidden:NO
    animated:NO];
    }

}
坑2: canOpenURL 调用返回NO问题

由于iOS加入对用户隐私以及禁止扫描系统信息的控制,目前通过canOpenURL的方法来判断用户是否安装特定app,则会出现-canOpenURL: failed for URL: "ABC://app/*******/" - error: "This app is not allowed to query for scheme ABC"的错误,

修改起来很简单,只需要在plist中加入ABC的白名单即可,如:

<key>LSApplicationQueriesSchemes</key>

<array>

<string>ABC</string>

</array>

注意:1.这里需要添加白名单的是APP B(检测端),而不是被检测的 APP A
     2.最多添加50个
坑3: iOS10 权限崩溃问题

This app has crashed because it attempted to access
privacy-sensitive data without a usage description.  The
app‘s Info.plist must contain an NSContactsUsageDescription key with
a string value explaining to the user how the app uses this data.

意思是说:你需要在info.plist文件 添加一个" NSContactsUsageDescription "
的Key,Value添加一个描述。

相机权限描述:

    <key>NSCameraUsageDescription</key>
    <string>cameraDesciption</string>

通信录:
    <key>NSContactsUsageDescription</key>
    <string>contactsDesciption</string>

麦克风:
    <key>NSMicrophoneUsageDescription</key>
    <string>microphoneDesciption</string>

相机:
    <key>NSPhotoLibraryUsageDescription</key>
    <string>photoLibraryDesciption</string>

备注:Key 一定不能错,Value 貌似可以随便填写

20160614172110952.jpg

坑4: xib不好用了?别怕看这里!
升级到Xcode7之后,发现Xib点击会弹出一个提示,不然无法修改里面内容,那么就选择Choose Device。重新update frame,就可以修改了,修改之后记得选择回去,不然打包会报错,如下图

图1 点击xib出现

屏幕快照 2016-09-20 上午11.56.23.png

图2 修改后打包报错

屏幕快照 2016-09-20 上午11.57.10.png

图3 解决报错问题,修改会Xcode7之前

屏幕快照 2016-09-20 下午12.19.35.png

坑5: command +/注释失效

很简单 ,跟大象放冰箱一样,分3步~

1.打开终端

2.输入sudo /usr/libexec/xpccachectl 

3.重启电脑
  坑6: 打印了一大堆0 1 的东西

  2016-09-21 17:46:03.253708 HadesSDK[5866:213539] subsystem:
  com.apple.BackBoardServices.fence, category: App, enable_level: 1,
  persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0,
  generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0,
  enable_private_data: 0

  Produce -Scheme-Edit  Scheme

  Environment Variables 里输入Key -Value

  OS_ACTIVITY_MODE : disable

784630-221d947d657ff45f.png

文/L柠_檬(简书作者)
原文链接:http://www.jianshu.com/p/789e4d39e7b8
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

时间: 2024-10-05 17:27:20

iOS10你掉坑了吗?的相关文章

为啥我老掉坑里

在一个群里看到,码代码除了主线外,还是一个和各种toollist抗争的过程. 和一个同学聊到,工资只是零花钱,一定要习得赚取生活费的技能. 被一个同学问到,两个方向或者两个问题的冲突,除了资源互斥,还有时间线上的不可逆转冲突. 这几天跟中了邪似的,每次我想做正事的时候,例如修改程序,看游戏代码,总是会被意料之外的事情给打断,这种正事无法启动的情况十分打击我的积极性... 例如刚打开vs,发现昨天手误点到的更新导致今天出错,之后又修复vs,修复vs的时候,发现源文件已删除:不小心修改了平台工具集,

掉坑里了,小心

今天公司产品一个功能突然挂掉了...向客户演示之前出现了,手机端显示不能获取下载资源,可是急坏了一票人.. 通过手机端,调查服务器地址调用了http:/2342342.domain.hostname.cn/apis/stickydataurls/接口,服务器返回502和500错误,去查看服务器前端Nginx错误日志显示: 2014/08/13 16:11:00 [error] 23851#0: *10303771 connect() failed (111: Connection refused

AlvinZH掉坑系列讲解

本文由AlvinZH所写,欢迎学习引用,如有错误或更优化方法,欢迎讨论,联系方式QQ:1329284394. 前言 动态规划(Dynamic Programming),是一个神奇的东西.DP只能意会,不可言传.大家在做DP题的时候一定要理清思路,一般是先不管空间,毕竟以空间换时间,大多数题都是先卡时间再卡空间的. DP具备的两个要素:最优子结构和子问题重叠,见<算法导论>225页.简单来讲就是问题是一个由多决策产生最优值的最优化问题. 最优化原理:其子问题的最优会导致全局最优,具有最优子结构的

AlvinZH双掉坑里了

AlvinZH双掉坑里了 时间限制: 1000 ms 内存限制: 65536 kb 题目描述 AlvinZH双掉进坑里了! 幸运的是,这坑竟然是宝藏迷宫的入口.这一次AlvinZH机智地带了很多很多背包--装金币! 假设现在AlvinZH捡到了n块金币,他一共带了m个背包,每个背包可以装任意多金币,但AlvinZH不允许有空的背包. 请你帮他计算一下一共有多少种装金币的方法吧! 注意:所有背包看作相同,即{1,3}和{3,1}是同一种方法. 输入 输入包含多组数据. 每组数据包含两个正整数,为金

Docker 从入门到掉坑

简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器.但是docker本身和虚拟机还是有较为明显的出入的.我大致归纳了一下,可以总结为以下几点: docker自身也有着很多的优点,关于它的优点,可以总结为以下几项: 安装docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用. 首先我们需要移除旧的docker版本:

修Bug(中途掉坑里,差点失控,后期完美补刀)

刚接手的项目留下一些bug,是一个word文档,一个一个慢慢解决吧: 先从简单的入手吧,找找感觉: bug:导出的word文档有乱码(<=b>.<=:p>): 生成word文档的方式是有3个模板文件,生成的时候动态替换标题和内容等: 3个文件放在类路径的某个目录下: 没有做缓存,每次都实时IO读取文件,这里可以优化: 问题可能是3个文件的编码,手动改下试试: 改成代码里边写的GBK: 重试,没效果: 修改文件,真的是多了字符,好多低级错误: ok,解决了,这个bug花了40分钟:

Vue掉坑记

本文章汇总学习过程中掉入和不理解的坑,会持续更新,请保持关注 1.过滤器类 搜索过滤 2.修饰符 修饰符汇总 3.webpack webpack+vuecli打包生成资源相对引用路径与背景图片的正确引用 原文地址:https://www.cnblogs.com/buildweb/p/8379815.html

差点掉坑,MySQL一致性读原来是有条件的

众所周知,在设定了隔离等级为Repeatable Read及以上时,InnoDB 可以实现数据的一致性读.换句话来说,就是事务执行的任意时刻,读取到的数据是同一个快照,不会受到其他事务的更新影响. 以前一直以为在事务内读到的数据不会受其他事务影响,后来发现只有普通的select语句才是一致性读.如果是update, delete, select for update, select in share mode等语句是当前读,读的是数据库最新数据, 下面是两个例子. 加锁读 创建一个测试用的表,

Docker从入门到掉坑(五):继续挖一挖 k8s

在之前的几篇文章中,主要还是讲解了关于简单的docker容器该如何进行管理和操作及k8s上手避坑,在接下来的这篇文章开始,我们将继续对k8s模块的学习 pod是啥 在k8s里面,有很多新的技术概念,其中有一个东西被称之为pod.pod是k8s集群里面运行和部署的最小单元,它的设计理念是,一个pod可以承载多个容器,并且共享网络地址和文件系统,内部的容器通过进程间的通信相互访问. 官方图片附上: 复制控制器(Replication Controller,RC) 通常我们在k8s集群里面会有成千上百