美文网首页其他iOS Dev.iOS Developer
iOS开发遇到的问题(二)

iOS开发遇到的问题(二)

作者: mokong | 来源:发表于2016-05-10 23:43 被阅读683次

开发中遇到的问题,分享给大家,有则改之,无则加勉。

1. UIScrollView加了category之后导致的手写输入时崩溃的问题—— [UIKBBlurredKeyView candidateList]

上周更新的应用,这周上线了,然后昨天旁边的同事告诉我说,友盟上的崩溃信息,崩溃率1%点多了,赶紧查查吧。
看了一下发现大部分的崩溃都是这个日志:[UIKBBlurredKeyView candidateList]: unrecognized selector sent to instance...,于是搜了一下

崩溃重现:

切换到有输入的地方,点击输入,切换输入法到手写输入法(系统的,第三方的没事),然后输入,输入一个之后,第二个字就会崩溃。

原因:

是因为给UIScrollView加了个category,是用于处理点击屏幕的事件的(触摸屏幕回收键盘),之前一直都是这么做的,也没问题,又或者又问题也没人反馈,😓,估计是投诉无门啊。。。。。而且我们测试的时候也没有测试手写输入法,因为没人会想到这还会有什么不同。苹果自己也没想到,所以我们就上线了,然后就有崩溃了。。。这坑爹的

解决:

既然有这个问题,就要解决,而且用了这个category之后,最坑的地方在于,即使你没有导入这个头文件,在其他输入的地方也有可能会跟这个冲突,从而崩溃。。。所以问题还是很严重地!!!
解决的方法很简单,删掉这个category,换种方式实现回收键盘,具体参照这个博客[UIKBBlurredKeyView candidateList]: unrecognized selector sent to instance 0x177cc850,我就是这么改的。

2. webView加载网页时出现了这个,NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

昨天给一个界面,新增一个入口,点击跳转一个网页,需要把登陆状态带到网页里,做好之后,今天提测,测试发现跳转的网页没问题,但是不能添加到购物车,点击网页下面标签中的个人中心没反应。。。

定位原因:

看看安卓的显示如何,是否能跳转,都正常。。。。。
然后开始排查,
a. 是不是登陆状态没有传到网页里;
b. 是不是手机的问题,这个网址直接从浏览器能否打开
这两个排除之后,没办法,
c. 单步来打印,看看能够正常跳转的网址和不能跳转的有什么不一样。
还真有不一样的地方,能够正常跳转的都是http的请求,而个人中心的本来也是http的,但是请求之后有一次重定向(自动跳转),到https的;然后就出问题了,走的webview加载失败的方法,打印的error是

NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 

so,为什么呢,再看看这个https链接在浏览器里的状况,显示的是,证书过期不安全的链接。
d. 百度,额,不要吵,确实是百度。。。。

结论:

是因为测试环境的证书好像是后台自己弄的,然后还过期了,于是就会有这个问题,

解决方法:

这个点解决方法有三种:
一种是后台更新证书,找一个好的能被信任的证书放过来;
第二种是客户端改代码,把不安全的这个给屏掉;但是最好能区分一下是上线还是测试,上线的时候把这些给去掉,要不这个https就没意义了。
最后一种是,大家都不改,测试不要测这个了,反正线上是好的。。。。。😄
不要问我用的哪种。。。。。

如果客户端要修改的话,参考iOS UIWebView 加载https站点出现NSURLConnection/CFURLConnection HTTP load failed (kCFStreamE...这个,我没试啊,好像暴露了什么。。。

相关文章

  • iOS 开发中你是否遇到这些经验问题(二)

    iOS 开发中你是否遇到这些经验问题(二) iOS 开发中你是否遇到这些经验问题(二)

  • iOS 开发中你是否遇到这些经验问题

    iOS 开发中你是否遇到这些经验问题(二) iOS 开发中你是否遇到这些经验问题(二)

  • iOS 开发小经验

    iOS 开发中你是否遇到这些经验问题(一)iOS 开发中你是否遇到这些经验问题(二)iOS 日常工作之常用宏定义大全

  • iOS开发遇到的问题(二)

    开发中遇到的问题,分享给大家,有则改之,无则加勉。 1. UIScrollView加了category之后导致的手...

  • IOS开发问题索引(四)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(八)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(七)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(六)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(五)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

  • IOS开发问题索引(九)

    全系列文章索引: IOS开发问题索引(一) IOS开发问题索引(二) IOS开发问题索引(三) IOS开发问题索引...

网友评论

  • 搜捕儿:谢谢楼主, 第一个问题帮助我解决了,非常感谢
  • CoderLocus:如果没有ScrollView呢,也没写那三个方法 还是崩溃了
    leejunhui:@JingQL 我是在BaseViewController里面写了这段代码, 然后就出现了文中的闪退问题。
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
    [super touchesBegan:touches withEvent:event];
    [self.view endEditing:YES];
    }
    CoderLocus:@翀鹰女孩 我写了一个scrollView的扩展,但没有使用,但也导致了原生手写崩溃,我把扩展里的三个方法注掉了
    翀鹰精灵:@JingQL 对 我也遇到了 请问你解决了吗?

本文标题:iOS开发遇到的问题(二)

本文链接:https://www.haomeiwen.com/subject/agiyrttx.html