Popularity
3.0
Stable
Activity
0.0
Stable
135
3
22

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: Reflection    
Latest version: v4.0.1

SwiftKVC alternatives and similar libraries

Based on the "Reflection" category.
Alternatively, view SwiftKVC alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of SwiftKVC or a related project?

Add another 'Reflection' Library

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.