#keyPath(MyView.property) should do it, I’d think.

Charles

> On Jul 25, 2017, at 11:16 AM, Manfred Schubert via swift-users 
> <swift-users@swift.org> wrote:
> 
> How can I cast a path segment within #keyPath() ? 
> 
> For example in the following code:
> 
> ——
> 
> import Cocoa
> 
> class MyView: NSView {
>    var property: String?
> }
> 
> class MyViewController: NSViewController {
> 
>    var viewProperty: String? {
>        return (view as! MyView).property                                    
> // 1)
>    }
> 
>    override class func keyPathsForValuesAffectingValue(forKey key: String) -> 
> Set<String> {
>        var keyPaths = super.keyPathsForValuesAffectingValue(forKey: key)
> 
>        switch key {
>        case #keyPath(viewProperty):
>            keyPaths.formUnion(#keyPath(view.property))            // 2)
>        default:
>            break
>        }
> 
>        return keyPaths
>    }
> }
> 
> ——
> 
> In the line marked 1) I can cast view to MyView to access a property. In the 
> line marked 2) I don't know how to perform that cast, and without I get the 
> error "Type 'NSView' has no member 'property'".
> 
> How can I solve this problem?
> 
> 
> Thanks,
> 
> Manfred
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to