
swift
紧握着寒风
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
swift 单例
记录一些swift问题原创 2016-03-24 14:02:30 · 322 阅读 · 0 评论 -
RxSwift Observable(观察量) subscribe(订阅)
RxSwift Observable(观察量) subscribe(订阅)1.观察量Observable(监听 元素一系列变化 并且 内部相应作出处理) 生成的一个方法这个元素可以是多样化,比如array,string,button的事件,文本框的字符串变化。特点Observable< E >,E代表观察的元素类型转化为一个序列,本身并不会触发执行。只有 被订阅的时候,才会触发执行。如果原创 2017-03-07 16:43:00 · 1398 阅读 · 0 评论 -
RxSwift (4) 转换符号
转换 观察量序列 发出的next信号 元素的 运算符map将接收的信号的值 做出处理 再传递下去func rx_map(){ let disposeBag = DisposeBag() let aObserable = Observable<String>.create { (observe) -> Disposable in observe.o原创 2017-03-10 17:01:08 · 621 阅读 · 0 评论 -
swift 调用 oc [cannot find interface declaration for ‘ BaseViewModel’ , superclass of ‘indexViewModel’
* 看报错,indexViewMode找不到父类BaseViewModel* 在桥接文件里 有#import "IndexViewModel.h",没有baseviewmodel,然后加上了#import "BaseViewModel.h"现在桥接文件是这样#import "IndexViewModel.h"#import "BaseViewModel.h"依然报同样的错误 这是因为 桥接文原创 2017-03-22 09:21:58 · 2340 阅读 · 0 评论 -
RxSwift (5) 条件运算符
filter将信号元素 筛选 符合条件的 继续发送,不符合的舍弃 func rx_filter(){ let disposBag = DisposeBag() Observable.from(["美腿","丝袜","超短裙"]) .filter{x in x=="美腿"} .subscribe{print($0)}原创 2017-03-13 10:39:02 · 683 阅读 · 0 评论 -
RxSwift (6) 观察量序列转换符
toArraay将一个序列 发出的所有信号元素 转化为数组func rx_toArray() { let disposeBag = DisposeBag() Observable.of("1","a","b")//range(start: 1, count: 10) .toArray() .subscribe { print($0) }原创 2017-03-13 11:06:28 · 905 阅读 · 0 评论 -
RxSwift (7) 手动启动序列[连接性序列]
publish转化连接序列,订阅时不会发出信号,执行connect方法时,才开始发射信号func rx_Publish() { let intSequence = Observable<Int>.interval(1, scheduler: MainScheduler.instance) .publish() _ = intSequence .subscr原创 2017-03-13 14:35:37 · 379 阅读 · 0 评论 -
RxSwift (8) 错误处理
catchErrorJustReturn发送错误信号的时候,转换为指定的信息 发送func rx_catchErrorJustReturn() { let disposeBag = DisposeBag() let sequenceThatFails = PublishSubject<String>() sequenceThatFails .catchErrorJ原创 2017-03-13 15:19:12 · 1718 阅读 · 0 评论 -
RxSwift (9) 调试符号
debugRxSwift的调试func rx_skipUntil(){ let disposeBag = DisposeBag() let sourceSequence = PublishSubject<String>() let referenceSequence = PublishSubject<String>() sourceSeque原创 2017-03-13 15:49:54 · 601 阅读 · 0 评论 -
Swift autoLayout 下的UILabel 换行问题
1. numberOfLines这个大家都知道设置为0.numberOfLines = 02. 设置约束比如上下左右,这里使用了SnapKit。.snp.makeConstraints({ (make) in make.top.equalTo(self).offset(5) make.left.equalTo(self).offset(15)原创 2017-04-14 10:17:27 · 2002 阅读 · 0 评论 -
Swift KVO触发问题(runtime支持不友好)
说一说在Swift中使用kvo的一点小坑*kvo实现原理*kvo是基于runtime实现的一个类的属性注册了观察者,在运行时,会动态的创建这个类的派生类(就是子类)键值观察通知依赖于NSObject 的两个方法:willChangeValueForKey: 和didChangevlueForKey:;在一个被观察属性发生改变之前, willChangeValueForKey:一定会被调用,这就原创 2017-03-15 15:22:18 · 1662 阅读 · 0 评论 -
RxSwift (3) 组合符号
startWith在开始发出订阅信号前,按照后进先出原则,发出指定的信号 func rx_operators_startWith(){ let disposeBag = DisposeBag() // 观察量序列 of是固定元素的观察序列 var ofObservable = Observable.of("制服","丝袜","吊带","短裙")原创 2017-03-10 10:19:56 · 635 阅读 · 0 评论 -
RxSwift (2) Subject
Subject简述既可以作为观察量序列(Observable),也可以作为观察者(observer)作为观察量序列的时候,将Observable里面 订阅的发送信号事件序列 剥离出来了,进行先订阅,后实现订阅的事件序列,也就是发送信号啦。作为观察者,就是实现发送信号。看下面的例子吧PublishSubject订阅之后 ,才开始发送信号func rx_PublishSubject(){原创 2017-03-09 14:26:23 · 695 阅读 · 0 评论 -
swift 监听键盘状态
/// 键盘通知 func doNotic(){ NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginView.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object:原创 2016-05-05 16:53:24 · 846 阅读 · 0 评论 -
swift 优雅的判断语句
guard:只处理不满足的条件,注意else {这里面必须写上跳出 语句 比如 return continue 等}具体看下面两个例子 func test(Num:Int?){ if Num !=nil { if Num>5 { print("满足所有要求")原创 2016-07-10 18:01:02 · 572 阅读 · 0 评论 -
一个swift程序员寻找进阶之路
入门后该如何进一步提高呢?当学会了控件,语法的基本使用之后,能做出东西来!感到总是强差人意,如此粗浅,到底一个API的精髓我们了解吗?还是只知道不求甚解的使用能做出界面效果就可以了呢?我想一个有梦想的程序员都不会满足的,起码我是这样的!到目前我也只是大概的摸到一点方向,多下载大神的demo去研究,去理解,去思考!不停的问为什么,这样写有什么好处,好在哪里,它的思想是什么!最后融会贯通成为自原创 2016-07-04 11:27:17 · 394 阅读 · 0 评论 -
swift 在函数内改变函数外的值(元组+inout)
使用原创 2016-07-16 16:06:36 · 778 阅读 · 0 评论 -
swift 柯里化(示例通知事件)
柯里化 :一个方法有几个参数只传递第一个参数,返回的将是一个方法 举个例子加强理解,网络请求的时候,是不是有一个固定的URL前缀,每一个接口后面拼接的URL都会不同,柯里化就很酷的解决这个问题 这是在全局文件定义的代码,注意下面这个方法,在传入第一个参数的,方法体的代码并不会执行,而是返回一个方法(这个方法有一个形参mutableURL,一个返回值:完整的url字原创 2016-07-08 15:49:05 · 410 阅读 · 0 评论 -
ios 9 隐藏状态栏
在需要的页面更改状态栏是否隐藏,以前使用的方法,在ios9 被弃用了。老方法(被弃用)UIApplication.shared.setStatusBarHidden(true, with: UIStatusBarAnimation.none)正确姿势看了一下UIViewController的API,让重写prefersStatusBarHidden方法,设置返回值来隐藏和开启。在需要的页面可以直接重原创 2016-11-09 16:04:36 · 425 阅读 · 0 评论 -
swift3.0遇到的那些坑之NSClassFromString
错误写法正确写法全局定义一个返回app名称的方法设置类名字使用NSClassFromString错误写法: let class_ = NSClassFromString(className)! 3.0这样写编译GG思密达,查了一下需要加上你的工程名字,坑吧!正确写法:全局定义一个返回app名称的方法func getAPPName() -> String{ let name原创 2016-11-02 15:58:22 · 1560 阅读 · 0 评论 -
函数式编程的前世今生
函数式编程的前世今生一等函数的理念可以追溯到 Church 的 lambda 演算 (Church 1941; Barendregt 1984)。此后,包括 Haskell,OCaml,Standard ML,Scala 和 F# 在内的大量 (函数式) 编程语言都不同程度地借鉴了这个概念。 OC中的一等函数 是 blocksSwift 中就是闭包尽管在语义上oc和swift原创 2016-12-09 17:09:00 · 608 阅读 · 0 评论 -
swift 可选值模式
unsafelyUnwrapped,关闭安全模式就不会判断是否可选值了,注意可能会报错。原创 2017-08-18 15:41:30 · 570 阅读 · 0 评论