cpbee's blog


  • 首页

  • 归档

  • 标签

RxSwift入坑(二)

发表于 2017-06-10

RxSwift GitHub

RxCocoa APIS

  • NSObject

Observe

1
2
3
4
5
6
7
8
9
func showArticle() -> Observable<Bool> {
return articleModel.rx.observe(Int.self, "type").map { optionalType -> Bool in
guard let type = optionalType else {
return false
}
return type == 0 ? true : false
}
}
阅读全文 »

RxSwift 入坑(一)

发表于 2017-05-10

Content

  1. Basic
  2. Subject
  3. Combination Operators
  4. Transforming Operators
  5. Filtering and Conditional Operators
  6. Mathematical and Aggregate Operators
  7. Connectable Operators
  8. Error Handling Operators
  9. Debugging Operators
  10. Refer

Basic

  • Observable

Observable 。 Observable 是观察者模式中被观察的对象,相当于一个事件序列 (GeneratorType) ,会向订阅者发送新产生的事件信息。事件信息分为三种:

  • .Next(value) 表示新的事件数据。
  • .Completed 表示事件序列的完结。
  • .Error 同样表示完结,但是代表异常导致的完结。
阅读全文 »

Swift 入坑(二,设计模式--上)

发表于 2016-01-10

引言

1,什么是设计模式

  • 这里引用GOF的<设计模式-可复用面向对象软件的基础>
    Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题, 以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”.

    模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定 而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。

阅读全文 »

Swift 入坑(二,设计模式--下)

发表于 2016-01-10

引言

在上一篇 我们介绍了类设计原则(SOLID原则),
本篇将为您介绍常见的23种设计模式

在GOF的《设计模式:可复用面向对象软件的基础》一书中 作者根据设计模式在粒度和抽象层次的不同将设计模式如下划分

创 建 型 结 构 型 行 为 型
类 Factory Method Adapter(类) Interpreter
Template Method
对象 Abstract Factory
Builder
Prototype
Singleton
Adapter(对象)
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Chain of Responsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor

23种设计模式

1 创建型

1.1 Factory Method 工厂方法模式


在GOF的《设计模式:可复用面向对象软件的基础》中是这样说的:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的 实例化延迟到其子类。

工厂方法模式是在简单工厂模式的基础上,对“工厂”添加了一个抽象层。将工厂共同的动作抽象出来,作为抽象类,而具体的行为由子类本身去实现,让子类去决定生产什么样的产品。

  • 源码部分
阅读全文 »

Swift 入坑(一,基础部分)

发表于 2015-12-21

引言

Swift已经面世一年半,而它的2.0版本也随着今年的WWDC2015一同面世. 两周前的Swift开源也让这个语言成为github最火的面向对象语言之一.Swift 作为一门新语言的命运会如何?根据近来针对 Apple 公司及整个生态圈的观察,Swift会成为Apple和这个生态圈的主力语言

一,初见_参考 The Swift Programming Language

二, MARK Tips

阅读全文 »

ReactiveCocoa 之 MVVM 模式

发表于 2015-11-15

ReactiveCocoa 之 MVVM 模式

1,简介

  • 模型(M):保存视图数据。

  • 视图+控制器(V):包含View和Controller, view用于展示内容 controller 用于绑定View和ViewModel

  • 视图模型(VM):处理展示的业务逻辑,包括按钮的点击,数据的请求和解析等等(网络和数据处理也可单独另开一个service层来处理)。

  • MVC ,MVCS ,MVVM 简单比较

    mvcs 较mvc 将网络和数据从controller里剥离.

    mvvm 较mvc 将事件的处理也从controller里面剥离出来

    共同的作用都是让controller 瘦身.解耦.

阅读全文 »

ReactiveCocoa 操作之信号处理

发表于 2015-11-15

ReactiveCocoa 操作之信号处理

1,映射(flattenMap,Map)

  • flattenMap,Map用于把源信号内容映射成新的内容
  • flattenMap作用:把源信号的内容映射成一个新的信号,信号可以是任意类型。
1
2
3
4
5
6
7
8
9
10
11
[[_textField.rac_textSignal flattenMap:^RACStream *(id value) {
// block什么时候 : 源信号发出的时候,就会调用这个block。
// block作用 : 改变源信号的内容。
// 返回值:绑定信号的内容.
return [RACReturnSignal return:[NSString stringWithFormat:@"输出:%@",value]];
}] subscribeNext:^(id x) {
// 订阅绑定信号,每当源信号发送内容,做完处理,就会调用这个block。
NSLog(@"%@",x);
}];
  • Map作用:把源信号的值映射成一个新的值
1
2
3
4
5
6
7
8
[[_textField.rac_textSignal map:^id(id value) {
// 当源信号发出,就会调用这个block,修改源信号的内容
// 返回值:就是处理完源信号的内容。
return [NSString stringWithFormat:@"输出:%@",value];
}] subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
  • FlatternMap和Map的区别

    1.FlatternMap中的Block返回信号。

    2.Map中的Block返回对象。

    3.开发中,如果信号发出的值不是信号,映射一般使用Map

    4.开发中,如果信号发出的值是信号,映射一般使用FlatternMap

    阅读全文 »

ReactiveCocoa 初探

发表于 2015-10-28

ReactiveCocoa 初探

一,简介

1.

ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。

2.作用

在我们iOS开发过程中,经常会响应某些事件来处理某些业务逻辑,例如按钮的点击,上下拉刷新,网络请求,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来处理,比如action、delegate、KVO、callback等。其实这些事件,都可以通过RAC处理,ReactiveCocoa为事件提供了很多处理方法,而且利用RAC处理事件很方便,可以把要处理的事情,和监听的事情的代码放在一起,这样非常方便我们管理,就不需要跳到对应的方法里。非常符合我们开发中高聚合,低耦合的思想。

阅读全文 »
Yang

Yang

8 日志
3 标签
© 2018 Yang
由 Hexo 强力驱动
主题 - NexT.Muse