13个Pods
帮助确定视图何时被重用,以及在进行代码UI时通过一个简单快捷的方式了解视图布局。以下代码示例
UIView *tmpVw = [[UIView alloc] initWithFrame:CGRectZero]; tmpVw.backgroundColor = [tmpVw colorFromMemory];
这受到了[这篇博客文章](http://blog.bignerdranch.com/879-peek-a-view/)的启发,作者是[Mark Dalrymple](http://blog.bignerdranch.com/author/markd/").
许可证:MIT
自定义断言 通过Mike Ash的文章(见下部的法律声明),我意识到默认提供的断言虽然在原则上很好,但缺乏很多潜力,于是决定通过对该文章中的代码进行一些简单的调整,可以创建一个更好的断言。为此,我创建了一个“自定义”断言,它还支持使用CocoaLumberjack,并在断言失败时通过一个标志将异常抛出(而不是仅仅终止)。断言有几个可能的“配置”,以下将进行解释。
支持的功能 断言支持使用CocoaLumberjack [GitHub 仓库]进行更详细的记录。为了使用它,您需要设置预处理器宏USE_LUMBERJACK=1并配置CocoaLumberjack的日志记录器(示例应用程序会这样做)。断言还支持一个“技巧”,通过一个标志使断言可以通过CrashReport到达,将断言作为异常输出。注意:“额外”的数据将仅在CrashReport中出现,指向断言被调用的行。为此,指定预处理器宏kSHOULD_THROW_EXCEPTION=1,这将使断言构建以下数据的“自定义”异常:消息:断言失败 - #expression 原因:#expression 用户信息:文件:断言失败文件名 行:文件中断言失败行的行号 函数:调用断言的函数名称 消息:提供给断言的自定义消息(如果有的话)
待办事项 添加对FlurrySDK的支持(将自定义异常记录到Flurry中,以获得所有可能的数据) 添加对Crittercism的支持(与FlurrySDK相同) 添加一种自动将CocoaLumberjack日志压缩到指定位置的简单方法
法律 基于2013年5月3日的Mike Ash的文章 - 周五问答:断言的正确使用
图标是从IconFinder.com获取的,并在此许可下使用
许可证:自定义
KZAsserts
提供大量的辅助断言,即使在生产代码中也能提供测试功能。不幸的是,它提供了一套预设的具体情况,但没有“运行块”场景。
ETAssert
会在您需要返回除了NO
或nil
以外的其他内容时,执行提供的^(NSError *){ /*code here*/ }
块。
许可证:MIT
这个分类主要是由于FBSnapshotTestCase和ReactiveCocoa而创建的。由于RACSignal
s (rac_textSignal
) 绑定到UITextField
的响应式控制命令,我的FBSnapshotTestCase
失败了。
即使我们向模型“注入”了正确的数据,但绑定并未触发信号以启用按钮。在这里,您将找到一个简单的方法,该方法将设置文本,并触发rac_textSignal
。
许可证:MIT
Moya 使用 Swift 泛型来抽象网络命令,为开发者提供更多编译时的信心。
还存在 ReactiveSwift 和 RxSwift 扩展。安装说明在 README 中。
许可:MIT
Nimble Matcher 用于 FBSnapshotTestCase。高度借鉴自 Expecta Matcher for FBSnapshotTestCase。
许可:MIT
Rec 是一个 NSURLProtocol
,它拦截从 NSURLSession
(带有 defaultSessionConfiguration
和 ephemeralSessionConfiguration
)发出的每个 NSURL
请求,并将自己作为连接的委托;一旦请求成功,框架将将其保存到应用程序的 Documents
文件夹中的“Fixtures”文件夹中。
许可证:MIT
RxViewModel
是 MVVM
和 Rx
扩展的融合
由于 ReactiveViewModel
项目停滞不前,并且没有 Swift
或 Swift 2.0
实现,我们发现有必要在 Swift
中实现类似的功能。
鉴于没有 Swift
分支,且对该项目缺乏兴趣,我们认为给 RxSwift
/RxCocoa
一次机会,并使用它作为此响应式视图模型方法的基础会更好。
长话短说:这是使用 RxCocoa
的一个明显的「模仿」ReactiveViewModel
。
许可:MIT