程序开发过程中的坑------程序员必看
实际开发过程中遇到的坑!!!!!!拿出来供大家分享!如果你开发过程中也遇到了比较坑的地方,欢迎留言......我将添加到本文中,已帮助更多的人!!!!!!
#pragma mark -- UI控件看不见
1.根本没有创建实例化这个控件
2.没有设置尺寸(frame.size、bounds.size)
3.控件的颜色跟父控件的背景色一样(实际上已经显示了,只不过用肉眼看不见)
4.透明度alpha <= 0.01
5.hidden = YES
6.没有添加到父控件中
7.被其他控件挡住了
8.位置不对
9.父控件发生了以上情况
10.创建控件的代码不在主线程中,或者它的父控件的创建不是在主线程中(找了很久的bug)
* UIImageView没有设置image属性,或者设置的图片名不对
* UILabel没有设置文字,或者文字颜色和跟父控件的背景色一样
* UITextField没有设置文字,或者没有设置边框样式borderStyle
* UIPageControl没有设置总页数,不会显示小圆点
* UIButton内部imageView和titleLabel的frame被篡改了,或者imageView和titleLabel没有内容
#pragma mark -- UI控件能看见但是不能交互
1.当前控件的userInteractionEnabled = NO
2.当前控件的enabled = NO
3.当前控件不在父控件的边框范围内
4.当前控件被一个背景色是clearColor的控件挡住了
5.检查父控件的前4种情况
6.文本输入框没有在主窗口上:文本输入框的文字无法输入
#pragma mark -- git不能拉取代码
原因:上次拉取的代码没有自动合并导致的错误
解决方法 拉去代码前依次输入下面两条指令
1、git merge --abort
2、git reset --merge
#pragma mark -- UIAlertController
UIAlertController中使用textField alert---> 确定action---> block---> alert 强引用循环
可以自定义一个AlertController,来验证
#pragma mark -- performSelector:withObject:afterDelay
对象执行performSelector:withObject:afterDelay方法后程序奔溃
原因:对象的释放比performSelector:withObject:afterDelay早(对象释放了,performSelector:withObject:afterDelay方法还没有执行,等到执行的时候,对象就成为了野
解决办法:在对应类的dealloc中执行cancelPreviousPerformRequestsWithTarget取消执行。
#pragma mark -- 极光推送
iOS项目 使用React native 开发使用jpush-react-native 框架
极光推送设置标签别名失败,这个东西坑了我一个周
解决办法: 在调用JPush设置别名和标签的方法之前,一定要在登录成功之后。
js代码如下:
this.networkDidLoginSubscription = NativeAppEventEmitter.addListener( 'networkDidLogin',() => { console.log('JPush检测到登录极光服务器成功了--------');//一定要在设置成功之后再设置别名 JPushModule.setAlias( AppData.domain, ()=>{console.log('--------------------iOS推送设置别名成功-----');}, ()=>{console.log('--------------------iOS推送设置别名失败-----');} ); });
更多内容--> 博客导航 每周一篇哟!!!
有任何关于iOS开发的问题!欢迎下方留言!!!或者邮件lieryangios@126.com 虽然我不一定能够解答出来,但是我会请教iOS开发高手!!!解答您的问题!!!