Key-Value Coding (KVC) for native Swift classes and structs
SwiftKVC
brings key-value coding to native Swift classes and structures. You can easily set and access properties just using a subscript:
var person = Person()
person["name"] = "John"
Or use the more verbose method to catch potential errors:
var person = Person()
do {
try person.set(value: "John", key: "name")
} catch {
print(error)
}
SwiftKVC
brings the power of Cocoa style key-value coding to Swift.
SwiftKVC
is available through CocoaPods. To install, simply include the following lines in your podfile:
use_frameworks!
pod 'SwiftKVC'
Be sure to import the module at the top of your .swift files:
import SwiftKVC
Alternatively, clone this repo or download it as a zip and include the classes in your project.
To enable key-value coding for a native Swift structure or class, simply have it conform to either Value
or Object
respectively:
struct Person : Value {
var name: String
var age: Int
}
You can then set and retrieve values from your model by key:
person["name"] = "John"
person["age"] = 36
if let id = person["id"] as? Int {
print(id)
}
If you would like to handle possible errors, you can use the more verbose methods:
do {
try person.set(value: "John", key: "name")
try person.set(value: 36, key: "age")
if let id = try person.get(key: "id") as? Int {
print(id)
}
} catch {
print(error)
}
Brad Hilton, [email protected]
SwiftKVC
is available under the MIT license. See the LICENSE file for more info.