2016-07-22 10 views
0

In Swift 2 hatte ich den folgenden Code verwendet:swift 3 hat NSFetchRequestResult kein Mitglied Wert

for (_, value) in self.frc.fetchedObjects!.enumerated() { 
    if (value.value(forKeyPath: "name_of_field_of_entity_name") as? String == "S") { 
    ... 
    } 
} 

jetzt mit Xcode 8.0 Beta (8S128d) und Swift 3, Xcode mir sagen:

Wert vom Typ ‚NSFetchRequestResult‘ hat kein Mitglied ‚Wert‘

Wie diesen Fehler beheben kann?

Vielen Dank

+0

Sehen [Was in Kerndaten neu] (https://developer.apple. com/bibliothek/prerelease/content/release notes/Allgemein/WhatNewCoreData2016/ReleaseNotes.html) sowie [Q & A: Swift 3, NSFetchRequest] (http://stackoverflow.com/questions/37810967/swift-3-nsfetchrequest). Ich glaube, dass dieser Thread möglicherweise ein doppelter Kandidat für die letztere Verbindung ist. – dfri

+0

Sorry dfri, Ich habe diesen Thread oft während meiner Suche nach Kandidaten-Antwort gelesen. Aber meiner Meinung nach fragte Deniss nach einem anderen Thema. Beide Thread Fragen über NSFetchRequest, aber in meinem Thread verstehe ich nicht, wie kann Wert (forKeyPath .... in swift 3. – Ziggy

+0

Ich glaube, dass Sie suchen nach 'func valueForKeyPath (_ keyPath: String) -> AnyObject? 'Blueprinted in [das' NSKeyValueCoding' Protokoll] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/#/apple_ref/occ/instm/NSObject/valueForKey:). – dfri

Antwort

2

Ich löste auf andere Weise.

Stattdessen Schleife der Verwendung mit aufgezählt(), habe ich eine Reihe von Objekten und ich Zugriff auf XXX Attribut von:

let xxx = self.frc.fetchedObjects as! [XXX] 
for i in 0..<(xxx.count) { 
    print(xxx[i].attribute_of_XXX) 
}