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就产生了问题,猜测是苹果的问题(羞~),我只是猜猜....

  • 相关阅读:
    intent-filter 之 data 「scheme, host, port, mimeType, path, pathPrefix, pathPattern」
    Android 自定义RecyclerView 实现真正的Gallery效果
    Android手势监听类GestureDetector的使用
    Android 屏幕手势滑动中onFling()函数的技巧分析
    onTouchEvent方法的使用
    Android 手势&触摸事件
    android关闭日志
    android intent和intent action大全
    调用新浪微博显示用户信息
    android 反编译
  • 原文地址:https://www.cnblogs.com/kaysun/p/5443350.html
Copyright © 2011-2022 走看看