RACSequence 的一些约定
- 默认情况延迟发生
- 默认会阻塞调用者
- 副作用只发生一次
RACSignal 的约定
- 信号事件有序串行执行,保证不会同时到达两个或多个信号,但是可以运行在不同的scheduler之上。
- 订阅事件总会在一个 scheduler 上
- 错误会立即传播(优先级最高)
- 订阅事件会产生副作用
- 订阅关系总会在complete或error时自动销毁
- 销毁会取消正在执行的任务并且清理相关的资源
使用 DragonBones 在 Webview 中绘制骨骼动画,并对当前的骨骼页面进行图层截取,实现保存本地和分享功能。
使用 DragonBones 制作骨骼动画时遇到一个问题,使用 WKWebView 加载骨骼动画正常,再对 WKWebView 的父容器 view (控制器 view )进行截图是出现空白。
原因:在与服务器联调接口之后,所有的API都能正常跑通,但是涉及到具体的业务逻辑时,比如界面遇到不同的数据做出特定的布局操作或弹框提示,再或者只有当数据字段符合特定的值时才能做出更多复杂的逻辑操作。如果依赖于服务器或者数据库,那么需要他们去帮你制造假数据来检测你的代码的正确性,这样是一次两次没问题,但是量大的时候,会影响双方的开发进度。能不能采取解耦的思想让移动端和服务端分隔开,在移动端测试开发阶段,自己根据接口文档制造自己需要的特定的返回数据呢?
解决方案:这时候我们需要自己的代理服务器来实现–使用 Charles 制作代理服务器。
具体需求:当API有所改动时,服务器正在开发相应功能,但是还没有部署到服务器上去,只是在原接口的返回数据中多加了一个字段“id”。现在移动端的业务逻辑写好了,就等数据测试了。
具体操作步骤:
HLS-Demo地址:https://github.com/yangchao0033/HLS-Demo
使用demo前请注意下面的问题,我在代码中也做了注释。
1 2 3 4 5 6 7 8 9 10 11 |
|
如果觉得文章有用的话,请读者在github上点个star😁,或者在简书上点个赞。
Demo配置原理:
1、 需要导入第三方库:ASIHttpRequest,CocoaHTTPServer,m3u8(其中ASI用于网络请求,CocoaHTTPServer用于在ios端搭建服务器使用,m3u8是用来对返回的索引文件进行解析的)
苹果官方对于视频直播服务提出了 HLS 解决方案,该方案主要适用范围在于:
首先,需要大家先对 HLS 的概念进行预览。
这段时间阅读ibireme神的源码,看到了 CoreText 排版这一块,里面包含了很多文字排版的专有名词,这里做一下整理,顺便帮大家安利一下。
CoreText 框架中最常用的几个类:
下面是该框架的结构图
使用 pod 安装第三方库时无法使用 pod search
搜索最新的版本
使用的 pod 版本过低
一个 run loop 对象提供了一些主要接口用于向你的 run loop 中添加 input source ,timers, 和run loop observer,并且运行它。每一条线程有且只有一个run loop 与他相关联。在 Cocoa 中,这个对象是 NSRunLoop 类的一个实例。在底层的应用中,它是指向 CFRunLoopRef 这种不透明类型的一个指针。
你需要使用以下其中之一来获取当前线程的 Run Loop :
原文链接:Run Loops
Run loops 是与线程相关联的基础设施的一部分。Run loop 是用来调度工作并且协调传入事件的时间处理循环。run loop 的目的是:让你的线程在有工作的任务的事后保持忙碌,并且在空闲的事后使线程保持休眠。
首先我们可以看一下 App 启动后 RunLoop 的状态:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
|
可以看到,系统默认注册了5个Mode: