【发布时间】:2016-09-30 09:54:00
【问题描述】:
我现在有一个大问题。我刚刚将我的应用程序更新到 Swift 3,在 Stackoverflow 的帮助下,到目前为止,我的一切都运行得很顺利,除了我尝试访问关系的谓词。
这是我的旧请求,适用于 Swift 2.3
if let myStation = station {
context.performAndWait {
let request = ProcessDetail.fetchRequest() as! NSFetchRequest<ProcessDetail>
// DOESNT WORK ANYMORE !!!!! NEW SWIFT
request.predicate = NSPredicate(format: "process.station_ID = %@", myStation.station_ID! )
do {
let processDetails = try context.fetch(request)
for processDetail in processDetails {
ansProcessDetails += 1
if processDetail.processdetail_checked == "yes" {
ansMasteredProcessDetails += 1
} else {
ansNotMasteredProcessDetails += 1
}
}
} catch let error {
print(error)
}
}
但是现在 processDetails 的数组是空的。有什么建议吗?
这是重要的代码行:
request.predicate = NSPredicate(format: "process.station_ID = %@", myStation.station_ID! )
谢谢本
【问题讨论】:
-
station_ID 是什么类型?
-
尝试一次
request.predicate = NSPredicate(format: "%K.%K = %@", "process","station_ID", myStation.station_ID! ) -
@OlegGordiichuk station_ID 是 Sting 类型
-
@NiravD 不错的尝试,但不幸的是没有用:/
-
也可以试试
request.predicate = NSPredicate(format: "%K.%K = '%@'", "process","station_ID", myStation.station_ID! )
标签: ios swift nspredicate swift3 nsfetchrequest