Swift:如何处理Chats类

时间:2015-08-17 09:42:00

标签: ios swift core-data

我的问题非常基本,因为我现在要快速学习。

我写过这个函数

    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]

1 个答案:

答案 0 :(得分:0)

根据您声明的要求,您不应该使用executeFetchRequest,而应使用countForFetchRequest。现在您根本不需要担心一系列项目,您只需检查数字并使用它来决定返回什么:

return (count > 0)