美文网首页
基础补漏(持续)

基础补漏(持续)

作者: 骑行怪状 | 来源:发表于2016-06-14 20:42 被阅读36次

1、 NSOperation 和 GCD 的选择


  • 项目中使用 NSOperation 的优点是 NSOperation 是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好,子类化 NSOperation 的设计思路,是具有面向对象的优点(复用、封装),使得实现是多线程支持,而接口简单,建议在复杂项目中使用。

  • 项目中使用 GCD 的优点是 GCD 本身非常简单、易用,对于不复杂的多线程操作,会节省代码量,而 Block 参数的使用,会是代码更为易读,建议在简单项目中使用。

  • NSOperation 是对 GCD 面向对象的封装,但是 GCD 基于C语言开发,效率却更高. 建议如果任务之间有依赖关系或者想要监听任务完成状态的情况下优先选择 NSOperation 否则使用 GCD 。

  • NSOperration可以通过KVO监控操作进行的状态(准备、执行中、完成、被取消),GCD无;

  • NSOperration可以很容易管理各个操作之间的依赖关系(addDependency:),CGD可以通过Block的嵌套实现,较为复杂;

  • NSOperationQueue可以设置最大并发数量 (setMaxConcurrentOperationCount:),GCD无;


2、@Class 和 #import 区别

#import "B.h"    
@interface A : NSObject {   
  
    B *b;   
}   
@end  

这里,A类是引用类,B类是被引用类,这里先不考虑A类的实现文件。
  • *#import方式会包含被引用类的所有信息,包括被引用类的变量和方法;@class方式只是告诉编译器在A.h文件中 B b 只是类的声明,具体这个类里有什么信息,这里不需要知道,等实现文件中真正要用到时,才会真正去查看B类中信息
  • 使用@class方式由于只需要只要被引用类(B类)的名称就可以了,而在实现类由于要用到被引用类中的实体变量和方法,所以需要使用#importl来包含被引用类的头文件;
  • 通过上面2点也很容易知道在编译效率上,如果有上百个头文件都#import了同一个文件,或者这些文件依次被#improt(A->B, B->C,C->D…),一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍,这样的效率也是可想而知的,而相对来讲,使用@class方式就不会出现这种问题了;

项目中使用model数据类需要使用 @class 声明

#import <UIKit/UIKit.h>
@class SDPModelForHotCity;

@interface SDPCellForHotCity : UITableViewCell

@property (nonatomic, retain)UIButton *buttonForMiss;
@property (nonatomic, retain)UILabel *labelForMiss;
- (void)passModelForHotCity:(SDPModelForHotCity *)model;
@end

相关文章

  • 基础补漏(持续)

    1、 NSOperation 和 GCD 的选择 项目中使用 NSOperation 的优点是 NSOperati...

  • 医学生竟然这样玩荒野,随便一个问题都难倒所有荒野玩家

    防水补漏你看谁?秋名山上补漏君!大家好,我是荒野行动补漏君。 绷带是荒野行动中最基础的物资,由于绷带太过常见,所以...

  • 1、css基础补漏

    font-family 设置三个字体,如果第一个找不到的话,就使用第二个,第二个找不到使用第三个。三个都没有的话,...

  • Stata--多重补漏mipolate

    mipolate多重补漏的命令,可用最邻近补漏,线性补漏、高次项补漏等方式进行补漏。

  • 补漏

    出现问题时,最重要的措施是淡定、积极面对。烦恼了两三天,陈成先电话协调,何不以为然。但陈成的态度非常坚决。对方坚定...

  • 补漏

    家里有个铁饭盆,用了很多年了,一日盛水后,却发现盆里的水没有了,桌子上有很多水,仔细看盆,原来盆底有了一个非...

  • 补漏

    昨天听说物业的会给业主外墙和内墙漏水的地方进行修补,不巧的是我恰要上班。 其实我之前并不知道的,去上班的时候从楼梯...

  • 补漏

    昨天因为我的他回家,我同孩子们一起兴奋起来,以致于忘记日更。 一年两度的欢庆时刻,我们一家同食同宿,过半个月的正常...

  • 补漏

    居然漏了一天 好可怕 2020.3.3 已经三号了啊,外面下起了很大的雪。还是睡到了十点多,做了很累的上班的梦。最...

  • 补漏

    单元楼道台阶,由于施工者偷工减料,在二楼台阶出现了一个窟窿,约有鸡蛋大小。可是上楼下楼的住户们都熟视无睹吧,任凭窟...

网友评论

      本文标题:基础补漏(持续)

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