2016-11-04 4 views
0

wenn ich konvertiere bin von einem schnellen 2 swift 3 der Fehler, der gegenüber ist, ist „mehrdeutig Verweis auf Mitglied Index“NSKeyValueChangeKey mehrdeutig Verweis auf Mitglied Index

Unten ist mein Code:

class KeyValueChange { 

    fileprivate let change: [String : AnyObject] 

    init(change: [String : AnyObject]) { 
     self.change = change 
    } 

    var kind: NSKeyValueChange? { 
     guard let value = change[NSKeyValueChangeKey.kindKey] as? NSNumber else { 
      return nil 
     } 

     return NSKeyValueChange(rawValue: value.uintValue) 
    } 

    var indexSet: IndexSet? { 
     return change[NSKeyValueChangeKey.indexesKey] as? IndexSet 
    } 

    var new: AnyObject? { 
     return change[NSKeyValueChangeKey.newKey] 
    } 

} 

Bitte sorgfältig ausarbeiten, weil an vielen Orten die gleichen Fehler

Vielen Dank im Voraus

Antwort

0

In Swift3 übergibt die KVO-Methode observeValue(forKeyPath:of:change:context:)[NSKeyValueChangeKey : Any]? für change Parameter. Wenn Sie Ihre Klasse KeyValueChange damit verwenden möchten, sollten Sie sich besser an die Änderung anpassen:

class KeyValueChange { 

    private let change: [NSKeyValueChangeKey : Any] 

    init(change: [NSKeyValueChangeKey : Any]) { 
     self.change = change 
    } 

    var kind: NSKeyValueChange? { 

     guard let value = change[NSKeyValueChangeKey.kindKey] as? NSNumber else { 
      return nil 
     } 

     return NSKeyValueChange(rawValue: value.uintValue) 
    } 

    var indexSet: IndexSet? { 
     return change[NSKeyValueChangeKey.indexesKey] as? IndexSet 
    } 

    var new: Any? { 
     return change[NSKeyValueChangeKey.newKey] 
    } 

} 
Verwandte Themen