Skip to content

Latest commit

 

History

History
31 lines (24 loc) · 1.16 KB

File metadata and controls

31 lines (24 loc) · 1.16 KB

@dynamicMemberLookup

The @dynamicMemberLookup attribute in Swift allows you to access properties dynamically on a type, even if those properties are not explicitly defined. By implementing a subscript method with a dynamicMember parameter in your type (such as a class or struct), you enable instances of that type to handle property accesses in a custom way. This feature is particularly useful for interacting with dynamic data sources, like JSON, or bridging with dynamic languages. However, it should be used judiciously to maintain code clarity and maintainability.

@dynamicMemberLookup
struct SettingsManager {
    private var settings: [String: String] = [:]

    // The dynamic member subscript
    subscript(dynamicMember member: String) -> String? {
        get {
            return settings[member]
        }
        set {
            settings[member] = newValue
        }
    }
}

var settings = SettingsManager()
settings.username = "user"
settings.password = "123456"

print("Username: \(settings.username ?? "unknown")")
print("Password: \(settings.password ?? "unknown")")

Reference

YouTube 👀