Skip to content

An accessor macro that adds the getter and the setter to the property.

License

Notifications You must be signed in to change notification settings

jrsaruo/PropertyAccessor

Repository files navigation

PropertyAccessor

An accessor macro that adds the getter and the setter to the property.

Requirements

  • iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+
  • Xcode 15+
  • Swift 5.9+

Usage

final class CustomView: UIView {
    private let titleLabel = UILabel()

    @Accessor(to: \Self.titleLabel.text)
    var title: String?

    /*
    Expanded to:
    
    var title: String? {
        get {
            self[keyPath: \Self.titleLabel.text]
        }
        set {
            self[keyPath: \Self.titleLabel.text] = newValue
        }
    }
    */
}

Using PropertyAccessor in your project

To use the PropertyAccessor library in a SwiftPM project, add the following line to the dependencies in your Package.swift file:

.package(url: "https://github.com/jrsaruo/PropertyAccessor", from: "1.0.0"),

and add PropertyAccessor as a dependency for your target:

.target(name: "<target>", dependencies: [
    .product(name: "PropertyAccessor", package: "PropertyAccessor"),
    // other dependencies
]),

Finally, add import PropertyAccessor in your source code.

Note

You may see an alert that says “'PropertyAccessorMacros' must be enabled before it can be used. Enable it now?” so you will have to trust and enable it.

About

An accessor macro that adds the getter and the setter to the property.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages