二元运算符不能应用于 NSpredicate 和 int
Binary operator cannot be applied to NSpredicate and int
我有一个 EventDec
实体,它具有 eventStatus
属性,我只想显示该属性的结果。这是我的代码
let fetchRequestDec = NSFetchRequest<NSFetchRequestResult>(entityName: "EventDec")
fetchRequestDec.predicate = NSPredicate(format:"eventStatus = %i")
let result = fetchRequestDec.predicate
if (result == 1)
{
print("Status = 1")
}
else
{
print("Status = 2")
}
所以我过滤错误,因为我收到了这个错误。我该如何解决?
Binary operator '==' cannot be applied to NSpredicate and int
好吧,很高兴我在操场上检查了这个,因为 Apple 在 Swift 3.0 中做了很多子字符串更改。试试这个,打印谓词的 Int 值(您也可以通过稍微更改代码来访问该值):
let index = fetchRequestDec.predicate.predicateFormat.index(fetchRequestDec.predicate.predicateFormat.endIndex, offsetBy: -1)
print("Status: \(Int(String(fetchRequestDec.predicate.predicateFormat[index]))!)")
您为什么要尝试使用谓词?您的问题似乎想要 return EventDec 对象并打印 eventStatus 属性。您需要执行提取。获取结果数组。提取你想要的。无需过滤。
let fetchRequest: NSFetchRequest<EventDec> = EventDec.fetchRequest()
if let results = try? context.fetch(fetchRequest) {
for result in results {
print("Status = \(result.eventStatus)")
}
}
这假定您的 managedObjectContext 称为上下文。
另外你有一个错字 eventStaus
a 而不是 eventStatus
我有一个 EventDec
实体,它具有 eventStatus
属性,我只想显示该属性的结果。这是我的代码
let fetchRequestDec = NSFetchRequest<NSFetchRequestResult>(entityName: "EventDec")
fetchRequestDec.predicate = NSPredicate(format:"eventStatus = %i")
let result = fetchRequestDec.predicate
if (result == 1)
{
print("Status = 1")
}
else
{
print("Status = 2")
}
所以我过滤错误,因为我收到了这个错误。我该如何解决?
Binary operator '==' cannot be applied to NSpredicate and int
好吧,很高兴我在操场上检查了这个,因为 Apple 在 Swift 3.0 中做了很多子字符串更改。试试这个,打印谓词的 Int 值(您也可以通过稍微更改代码来访问该值):
let index = fetchRequestDec.predicate.predicateFormat.index(fetchRequestDec.predicate.predicateFormat.endIndex, offsetBy: -1)
print("Status: \(Int(String(fetchRequestDec.predicate.predicateFormat[index]))!)")
您为什么要尝试使用谓词?您的问题似乎想要 return EventDec 对象并打印 eventStatus 属性。您需要执行提取。获取结果数组。提取你想要的。无需过滤。
let fetchRequest: NSFetchRequest<EventDec> = EventDec.fetchRequest()
if let results = try? context.fetch(fetchRequest) {
for result in results {
print("Status = \(result.eventStatus)")
}
}
这假定您的 managedObjectContext 称为上下文。
另外你有一个错字 eventStaus
a 而不是 eventStatus