程序开发过程中的坑------程序员必看

 实际开发过程中遇到的坑!!!!!!拿出来供大家分享!如果你开发过程中也遇到了比较坑的地方,欢迎留言......我将添加到本文中,已帮助更多的人!!!!!!

#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开发高手!!!解答您的问题!!!

posted on 2017-06-02 11:03  人生为代码而活  阅读(1182)  评论(0编辑  收藏  举报

导航