美文网首页
ios - 开发经验总结

ios - 开发经验总结

作者: flowerflower | 来源:发表于2017-06-02 17:43 被阅读96次

2.判断if书写方式

建议这样写

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

        if (indexPath.row == 0) return 10;

        if (indexPath.row == 1) return 20;

        if (indexPath.row == 2) return 30;
        return 40;
    }

而不是


    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

        if (indexPath.row == 0) {
            return 10;
        }else if (indexPath.row == 1){
            return 20;
        }else if (indexPath.row == 2){
            return 30;
        }else{
            return 40;
        }
    }

4.类型输出


类型 定义
NSInteger %ld or %lx
NSUInteger %lu or %lx
CGFloat %f or %g
CFIndex %ld or %lx
pointer %p
long long %lld or %llx
unsigned long long %llu or %llx

6.UIView不能接收触摸事件的4种情况:

1>不接收用户交互userInteractionEnabled = NO;比如UIImageView,UILabel;
2>隐藏hidden =YES;
3>透明alpha<0.01;
4>点击的point在View范围之内,但是View的范围超出了superView,同时view的父类的clipsToBounds属性值为NO
注意:UIImageView的userInteractionEnabled 的默认就是NO,因此UIImageView以及它的子控件默认是不能接收触摸事件的
例如:不是按钮就一定有反应的,要看其父控件是谁.若按钮的父控件是ImgView 要是想要bth有响应的话,需要把imgView.userInteractionEnabled = YES;这样按钮就有反应了

8.代理使用weak还是assign?

weak: 他会把后面的东西当成一个对象,没有指针指向的时候会将其释放掉
assign:基本数据类型

在非ARC环境里面设置代理对象可以用assign
在ARC环境中设置代理对象要用weak(如果该对象没有指针指向它,会自动将该对象释放,即自动执行delegate = nil),如果用assign可能会出现野指针,但是可以用delegate = nil来进行释放;建议使用weak安全一点

self.strongPoint = [NSDate date];
self.weakPoint = self.strongPoint;
self.assignPoint = self.strongPoint;

把strongPoint释放后,按常理 weakPoint与assignPoint应该也为空,但实际上assignPoint指向的对象释放了,他自己指向了一个不存在的区域,野指针,需要附加一句 assignPoint = nil; 才可以.

self.strongPoint = nil; //将strongPoint释放了

//下面这一行会引起程序崩溃(有时候不崩溃,需要多运行几次
这是因为当 assign 指针所指向的内存被释放(释放并不等于抹除,只是引用计数为0),不会自动赋值 nil ,这样再引用 self.assignPoint 就会导致野指针操作,如果这个操作发生时内存还没有改变内容,依旧可以输出正确的结果,而如果发生时内存内容被改变了,就会crash

NSLog(@"assignRefrence:%@", self.assignPoint);

结论证明:在 ARC 环境下编程时,指针变量一定要用 weak 修饰,只是基本数据类型和结构体需要用 assign ,例如 delegate ,一定要用 weak 修饰

相关文章

  • iOS开发经验总结

    iOS开发经验总结 iOS开发经验总结

  • iOS开发经验

    多年iOS开发经验总结(一) 多年iOS开发经验总结(二) 多年iOS开发经验总结(三)

  • 多年iOS开发经验总结

    多年iOS开发经验总结 多年iOS开发经验总结

  • 多年iOS开发经验总结汇总

    iOS多年开发经验总结

  • iOS开发

    多年iOS开发经验总结(一) 作者:杂物无尘 多年iOS开发经验总结(二) 作者:杂物无尘常看温故而知新,很多小技...

  • 开发总结

    1、iOS开发经验总结 : http://www.cocoachina.com/ios/20170503/1916...

  • 优秀博客

    多年iOS开发经验总结(一) Metal学习:落影loyinglin 音视频学习从零到整 面试题:iOS猿_员 O...

  • AFNetworking的封装

    简介 很多iOS开发项目都会对AFNetworking二次封装而使用,我也接触过几个项目,根据个人的开发经验总结个...

  • [IOS经验总结]UIWebView与JS之间的数据交互(转自神

    [IOS经验总结]UIWebView与JS之间的数据交互 [IOS经验总结]UIWebView与JS之间的数据交互...

  • Masonry使用介绍

    现在iOS开发最多的莫过于:纯代码开发,对于纯代码开发,最常用的莫过于Masonry,下面根据我自己的经验总结下M...

网友评论

      本文标题:ios - 开发经验总结

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