本杰明·科恩

7个库

BCJSONMapper

BCJSONMapper 已弃用。请使用 BCJSONReader 代替。

许可证:[a href="https://open-source.org.cn/licenses/MIT">MIT

  • Objective-C

BCJSONReader

BCJSONReader 是一个用于处理现实世界中存在的大量 JSON 结构的库。其主要特性包括:+ 灵活。提供处理多种 JSON 使用方式的函数。+ 可扩展。易于集成自己的代码,同时仍然使用 BCJSONReader 的 infra 结构。

许可证:[a href="https://open-source.org.cn/licenses/MIT">MIT

  • Objective-C

BCLContinuations

BCLContinuations 是一个小型的 Objective-C 惯性库。这是一个坏主意。它现在已不再使用。不要使用它。

许可证:[a href="https://open-source.org.cn/licenses/MIT">MIT

  • Objective-C

BCLKeyValueObservation

BCLKeyValueObservation 是在 Apple 的 KVO 系统之上的一个薄抽象层。BCLKeyValueObservation 的目标是:- 更少的样板代码(再见 observeValueForKeyPath:ofObject:change:context:)- 提高功能清晰度(强制方法名称)- 不是 为 runtime 中的娱乐提供借口

许可证:[a href="https://open-source.org.cn/licenses/MIT">MIT

  • Objective-C

BCLRedirectingURLCache

BCLRedirectingURLCache 允许请求被重定向到本地或远程文件。潜在用途:+ 从依赖开发中的网络服务中消除依赖性 + 测试网络代码 + 向 web 视图提供静态内容。

许可证:[a href="https://open-source.org.cn/licenses/MIT">MIT

  • Objective-C

BCOValueObject

BCOValueObject 是一个用于实现值对象的抽象类。BCOValueObject 提供等价检查、唯一性和可选的可变变体支持。

BCOValueObject 对其子类的以下限制:- 直接子类只能包括只读属性。这些属性应由指定的初始化器设置。直接子类被称为 '不可变变体'。- 不可变变体是线程安全的。- 不可变变体可以被子类化以创建 '可变变体'。可变变体有以下限制:- 可变变体不得添加属性(可以直接添加直接 ivars,但这被强烈反对)。- 可变变体不应被子类化。- 可变变体的设置器声明必须列在类别中。大多数类型的设置器实现将被自动生成。如果无法生成设置器,则在类初始化时会引发异常。无法生成的设置器必须按照如下方式实现:}-${void}setTransform:${CATransform3D}transform{ [self setValue:${NSValue valueWithCATransform3D:transform} valueForKey:@"transform"]; } BCOValueObject 通过覆盖 setValue:forKey: 来避免从在设置器中调用时造成无限循环,前提是遵循上述类层次要求。- 可变变体必须注册,以便不可变变体可以制作可变副本。最简单的方法是在声明可变变体的头文件中调用 BCOVALUEOBJECTREGISTERMUTABLE_VARIANT。

由于子类限制,应使用协议实现多态。

许可证:[a href="https://open-source.org.cn/licenses/MIT">MIT

  • Objective-C

JSONReader

JSONReader 使用 JSON 路径提供对 JSON 对象的强类型访问。JSONReader 减少了安全处理 JSON 所需的样板代码量,并使处理错误变得容易。

许可证:[a href="https://open-source.org.cn/licenses/MIT">MIT

  • Swift