zoukankan      html  css  js  c++  java
  • 【ios】UIDatePicker作为UITextField的inputView的crash问题

    新建一个uiview作为uitextfield的inputview,在此uiview中,加入一个uidatepickerview,此uiview是为了需求上的扩展,会有加入其它视觉元素的可能。

     

    crash详情:

    2016-05-12 10:07:44.437 LiveChild[2722:1916804] used: 374796288 free: 26144768 total: 400941056

    2016-05-12 10:08:08.121 LiveChild[2722:1916758] Received memory warning.

    2016-05-12 10:08:16.608 LiveChild[2722:1916758] *** Assertion failure in -[UIPickerTableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3512.60.7/UITableView.m:10594

    2016-05-12 10:08:16.620 LiveChild[2722:1916758] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource is not set'

     

    现象:重复几次弹出uidatepicker、再关闭的情况,会导致这个crash。

     

    分析过程:

    1、曾一度以为是因为内存不够,导致datepicker不能显示,但在之后的几次log中,没有发现Received memory warning,暂且排除这个原因。

    2、google了下,友人说需要设置好所有datepicker相关操作后,再将datepicker add到当前inputview的subview中,试了下,无功而返

    3、又有友人说在layoutsubviews里addsubview,没有用

    4、友人说setdate第一次是ok的,第二次就crash掉,咦,很相似哦~ 在willDisplay时,产生了crash,兼之在调试过程中(有断点)并未产生crash,且zombies在跑的过程中没有crash(神啊,原因是zombies跑真机设备会有延时啊),故而,通过延时setdate的方式,发现4、5次又crash了,还是不行,连zombies都不行,真是要绝望了啊~~

    5、最后,既然这是一个datepicker因为多次设置而导致的问题,那么我尝试每次uitextfield获取到焦点(第一响应者)后,即新建一个包含uidatepicker的uiview,没有再crash了。

     

    实际上,在使用uidatepicker的过程中,并未做过多处理,仅仅设置了uidatepicker的一些常用属性,然后在信息显示页面和信息编辑页面多次切换,多次setdate就产生了问题,猜测是苹果的问题(羞~),我只是猜猜....

  • 相关阅读:
    2017年10月9日 冒泡&去重复习
    2017 年9月29日 弹出层特效
    2017 年9月28日 三级联动
    2017 年 9 月 27 日 js(文本框内容添加到select)
    2017 年 9 月 27 日 js(1.两个select 内容互换 2.单选按钮 同意可点击下一步 3. 全选框)
    2017 年 9 月26 日
    linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装
    Zabbix配置文件详解之服务端zabbix_server
    LoadRunner安装+汉化+破解
    zabbix告警“Zabbix poller processes more than 75% busy”
  • 原文地址:https://www.cnblogs.com/kaysun/p/5443350.html
Copyright © 2011-2022 走看看