我的问题非常基本,因为我现在要快速学习。
我写过这个函数
func checkIfChatExistsLocal(username:String) -> Bool {
var result = [Chats]()
let fetchRequest = NSFetchRequest(entityName: "Chats")
fetchRequest.fetchLimit = 1
let userPredicate = NSPredicate(format: "username = '\(username)'")
fetchRequest.predicate = userPredicate
result = try! self.context.executeFetchRequest(fetchRequest) as! [Chats]
if result == nil {
print("nil")
return false
} else {
let rresult = result[0].username
return true
}
print("Result \(rresult)")
}
if部分是错误的,我基本上知道为什么(因为result
的类型为[Chats]
),这就是我的理解问题出现的地方:
如何处理result
?
with result = .... as! [Chats]
我将result
声明为Chats
类型的数组(?),它是类(?) - 所以是一个类数组?
Chats.swift - 顺便说一下 - 是:
@objc(Chats)
class Chats: NSManagedObject {
// Insert code here to add functionality to your managed object subclass
}
与
extension Chats {
@NSManaged var username: String?
}
首先(帮助我)如何修复我的代码以使其运行?
第二:
我应该整合“学习斯威夫特”的哪一部分来处理result = .... as! [Chats]
?
答案 0 :(得分:0)
根据您声明的要求,您不应该使用executeFetchRequest
,而应使用countForFetchRequest
。现在您根本不需要担心一系列项目,您只需检查数字并使用它来决定返回什么:
return (count > 0)