创建GIT仓库 将仓库克隆到本地指定目录,该目录下将自动创建HCKit-Swift文件夹,并且包含LICENSE和README.md文件。 创建一个项目,并将项目根目录中的文...
创建GIT仓库 将仓库克隆到本地指定目录,该目录下将自动创建HCKit-Swift文件夹,并且包含LICENSE和README.md文件。 创建一个项目,并将项目根目录中的文...
背景 Swift project 中 c/c++ 混编一般可以通过创建 bridging-header.h 文件来完成, 然而如果是在 framework 中这种操作是不被准...
loadData()方法在主线程进行网络请求。应当异步进行请求,在主线程返回结果。所以 loadData() 方法应当加上 subscribeOn 和 observeOn
```
func loadData<T: Mapable>(_ model: T.Type) -> Observable<T?> {
return provider.XHOffLineCacheRequest(token: .github)
.debug()
.subscribeOn(ConcurrentDispatchQueueScheduler.init(qos: .default))
.observeOn(MainScheduler.instance)
.distinctUntilChanged()
.catchError({ (error) -> Observable<Response> in
//捕获错误,不然离线访问会导致Binding error to UI,可以再此显示HUD等操作
print(error.localizedDescription)
return Observable.empty()
})
.mapResponseToObj(T.self)
}
```
这里由于涉及到线程的切换,所以ResultModel 实例在存入 realm 的时候和 crash,(realm 实例 及 Object 实例不支持多线程操作)
Moya+Realm+RxSwift+SwiftyJSON优雅的网络请求方式(扩展离线缓存)Moya + RxSwift + SwiftyJSON + Realm 封装网络请求 先看一个例子,这段代码是请求数据然后展示在Label上 看起来是不是很优雅,接下来一步一...
最近项目要添加新功能了,真是懒的写,可是既然要写,就要从中学到点新东西。Swift已经发布了两年了,我居然还没用过,太不应该了。 项目开动啦,还是用cocoapods引入几个...
架构/设计 单一职责原则这是经常被违背的原则。一个类只能干一个事情,一个方法最好也只干一件事情。比较常见的违背是一个类既干UI的事情,又干逻辑的事情,这个在低质量的客户端代码...
VTMagic 有很多开发者曾尝试模仿写出类似网易、腾讯等应用的菜单分页组件,但遍观其设计,大多都比较粗糙,不利于后续维护和扩展。琢磨良久,最终决定开源这个耗时近两年打磨而成...
文 | 行之 我高中时候,朴树的歌流行。 高一的语文老师,有些时髦,偶尔给我们聊点功课外的事。 有一次讲课的时候,讲到多音字,他说,朴字有四种读音,pō、pǔ、pò、piáo...
社会热点·万众创业已经破产 作者:饱醉豚 万众创业规划,事实上已经破产。创业者多小微企业。创业之初,会有各种不规范。初创企业失败率极高,能为政府带来税收的微乎其微。这一年时间...
一.UIPresentationController简介 UIPresentationController是 iOS8 新增的一个API,苹果的官方定义是:对象为所呈现的视图...
原文出处 --->MyBlog 最新更新 解决使用Masonry布局无法及时获取frame信息的兼容问题 解决使用border而导致的失效问题 改为类方法,使用更加简单方便 ...
一、前言 通过本文,你可以了解到 什么是DSL,怎么实现链式DSL, 如何去封装优化,以及 轻松使用 UIBezierPath 当然,本文所采用的例子是对 UIBezierP...
大家都知道,UINavigationController对象有一个方法pushViewController,用来做视图跳转,也是在iOS开发中常用的页面转换方法之一。大多数A...
开始 touch script.sh 创建一个第一个脚本 script.sh (# 为注解) 添加可执行权限 chmod a+x script.sh 执行脚本 sh scri...