b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

面向对象 c语言 ReactiveCocoa的学习内容,下面方法

电脑杂谈  发布时间:2018-02-14 11:08:50  来源:网络整理

c语言面向什么_面向对象的语言有哪些_面向对象 c语言

ReactiveCocoa

• 知识备用库:iOS10 collectionView以前是复用的,但是iOS10以后就要设置一个属性才可以复用。

• C语言面向过程编程,OC面向对象编程

• 链式编程思想(masonry),可读性特别好,聚合度高;

• 响应式编程思想(KVO),解耦比较好;

• 函数式编程结构 + 响应式编程思想 = ReactiveCocoa 的实现;

• 所谓的店语法无非是get或者set方法,set方法一般用于赋值,get方法一般用于取值

• 关于OC中的括号传递参数的思想其本质就是block,当想用链式编程思想的时候第一个想到的就是block。下面是一个简单的例子:

```

-(void(^)())testCode

{

NSLog(@"======a");

void(^block)() = ^{

NSLog(@"======c");

};

NSLog(@"======b");

return block;

}

调用后的输出的结果为:

2018-02-05 15:54:02.660583<0800 RACtest[1138:36428] ======a

2018-02-05 15:54:02.660738>0800 RACtest[1138:36428] ======b

2018-02-05 15:54:02.660823+0800 RACtest[1138:36428] ======c

```

---

```

^{

//其实这里你可以把代码可以全部保存到这里

NSLog(@"保存你的代码");

}();

```

• 备注:其实上面的这种代码格式为了更好的管理代码,没别的意思

• 下面我就用这种链式编程思想实现一个简单的加法计算器,仿照Masonry,首先我在这里定义了一个 CalculateManager的类,然后在里面用block实现链式调用的这种方法

```

typedef CalculateManager *(^CalculateManagerBlock)(NSInteger value);

-(CalculateManagerBlock)add

{

return ^(NSInteger value){

_result += value;

return self;

};

}

```

• 上面的这种思想我觉得在封装SDK的时候真心是一个不错的选择,但是你知道这个函数的执行顺序吗,首先调用函数方法,然后调用block,记住这个参数不是函数本身的参数,而是block的,调用()之心里面的 ^{}里面的代码,然后在block里返回CalculateManager。

• 上面是RAC的基础下面进入正题:

• 先说下KVO,其实KVO是属于响应式编程思想的一种,KVO底层的原理是set方法有没有调用,KVO只能set方法。KVO的实现原理,(1)动态生成子类,也叫派生类(子类会继承所有的父类的方法);(2)生成子类为了重写父类的set方法,目的属性有没有改变;(3)修改对象的isa指针,isa指向那个类就去那个类中查找方法,IPM-指向实际执行函数体的函数指针,_cmd SEL 类型的一个变量,Objective C的函数的前两个隐藏参数为self 和 _cmd,ivar ivar - objective C中的实例变量。

• RAC有两个版本一个是OC的,另外一个是swift的,默认是swift版本的,如果想要OC版本的用 ReactiveObjC 搜索。

• 在这里任何事情都通过信号传递,当然新框架的学习也是非常困惑的,我们一般时候学习的时候通常在一般的常用的类入手,其次想着框架的实现和源码的阅读,对于RAC来说,在代码的实现是函数式,其思想是响应式编程。面向对象 c语言


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-77250-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...