Silvery
将键值编码带来原生 Swift 类和结构。您可以使用数组的索引轻松设置和访问属性
var person = Person()
person["name"] = "John"
或者使用更复杂的方发来捕获潜在的错误
var person = Person()
do {
try person.setValue("John", forKey:"name")
} catch {
print(error)
}
Silvery
将 Cocoa 风格的键值编码能力带入 Swift。
Silvery
通过 CocoaPods 提供。要安装,只需将以下行添加到您的 podfile 中
use_frameworks!
pod 'Silvery'
确保在您的 .swift 文件顶部导入模块
import Silvery
或者,克隆此仓库或将其作为 zip 文件下载,并将类包含到您的项目中。
要为原生 Swift 结构或类启用键值编码,只需让它遵守 Model
协议
extension Person : Model {}
然后您可以通过键设置和检索模型中的值
person["name"] = "John"
person["age"] = 36
if let id = person["id"] as? Int {
print(id)
}
如果您想处理潜在的错误,可以使用更详细的方发
do {
try person.setValue("John", forKey: "name")
try person.setValue(36, forKey: "age")
if let id = try person.valueForKey("id") as? Int {
print(id)
}
} catch {
print(error)
}
请注意,您的模型的所有属性都必须遵守 Property
协议,如下所示
extension MyCustomType : Property {}
未显式解包的可选属性将无法正常工作,应避免使用
struct User : Model {
var id: String
var email: String! // Will not work as expected and may result in a fatal error if set or accessed
}
在类的情况下,还有一个注意事项。如果您的类从具有私有属性的父类继承,则 Silvery
可能无法按预期工作,可能会失败。
Brad Hilton, [email protected]
Silvery
受 MIT 许可证保护。有关更多信息,请参阅 LICENSE 文件。