AnyObjectConvertible 0.0.3

AnyObjectConvertible 0.0.3

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016 年 6 月
SPM支持 SPM

tarunon 维护。



  • 作者
  • tarunon

AnyObjectConvertible

轻松将您的 struct/enum 转换为 AnyObject。

Sumally

在 Swift 中,struct 或 enum 无法转换为 AnyObject

NSNotificationCenter.defaultCenter().postNotificationName("foo", object: YourOwnStruct()) // Fail

当然,您可以使用 Box<T> 包装值。

class Box<T> {
  let value: T
  init(value: T) {
    self.value = value
  }
}
NSNotificationCenter.defaultCenter().postNotificationName("foo", object: Box(value: YourOwnStruct())) // OK

但 Box<T> 的解包过于懒惰。

let value = (notification.object as? Box<YourOwnStruct>)?.value

如果在该类型中实现 AnyObjectConvertible,则可以强制转换您的 struct/enum。

extension YourOwnStruct: AnyObjectConvertible {}

NSNotificationCenter.defaultCenter().postNotificationName("foo", object: YourOwnStruct()) // OK
let value = notification.object as? YourOwnStruct

安装

使用 Carthage。

github "tarunon/AnyObjectConvertible"

许可证

MIT