SwiftKVC alternatives and similar libraries
Based on the "Reflection" category.
Alternatively, view SwiftKVC alternatives based on common mentions on social networks and blogs.
-
EVReflection
Reflection based (Dictionary, CKRecord, NSManagedObject, Realm, JSON and XML) object mapping with extensions for Alamofire and Moya with RxSwift or ReactiveSwift -
Runtime
A Swift Runtime library for viewing type info, and the dynamic getting and setting of properties. -
JSONNeverDie
Auto reflection tool from JSON to Model, user friendly JSON encoder / decoder, aims to never die
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SwiftKVC or a related project?
README
SwiftKVC
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.
Installation
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.
Usage
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)
}
Author
Brad Hilton, [email protected]
License
SwiftKVC
is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the SwiftKVC README section above
are relevant to that project's source code only.