迅速3,NSFetchRequestResult没有成员值

问题描述:

在夫特2,我曾使用以下代码:迅速3,NSFetchRequestResult没有成员值

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

现在,使用的Xcode 8.0β(8S128d)和SWIFT 3时,Xcode告诉我:

值类型的“NSFetchRequestResult”没有成员“价值”

如何解决这个问题?

谢谢

+0

参见[什么在核心数据的新(https://developer.apple。 com/library/prerelease/content/releasenotes/General/WhatNewCoreData2016/ReleaseNotes.html)以及[问与答:Swift 3,NSFetchRequest](http://*.com/questions/37810967/swift-3-nsfetchrequest)。我相信这个帖子可能是后一个链接的重复候选人。 – dfri

+0

对不起,在我搜索候选答案的过程中,我多次阅读该帖子。但在我看来,Deniss询问了不同的问题。这两个线程询问有关NSFetchRequest,但在我的线程中,我不明白如何使用值(forKeyPath ....在swift 3. – Ziggy

+0

我相信你正在寻找'func valueForKeyPath(_ keyPath:String) - > AnyObject? '在[NSKeyValueCoding'协议]中蓝图(https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/#//apple_ref/occ/instm/NSObject/valueForKey: )。 – dfri

我解决了不同的方式。

代替使用环与列举的(),I创建的对象的阵列,并且我通过访问XXX属性:

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