使用核心数据增加实体的计数 (Twitter CS193p)

Using Core Data to Increment a count on an entity (Twitter CS193p)

我正在完成 CS193 斯坦福课程,并且正在使用 Core Data 将推文存储为 Twitter 客户端的一部分。

然而,当我找到一个存在的哈希值时,我想增加 hash.count 代表我有多少匹配项,但无论有多少匹配的哈希值 hash.count 只会存储0 或 2(即属性不作为实体上的持久存储)。

class HashMention: NSManagedObject {
static func findOrCreateHashMention(matching twitterInfo: Twitter.Mention, in context: NSManagedObjectContext) throws -> HashMention
{
    let hash = HashMention (context: context)
    let request : NSFetchRequest<HashMention> = HashMention.fetchRequest()
    request.predicate = NSPredicate(format: "text =[cd] %@", twitterInfo.keyword)
    do {
        let matches = try context.fetch(request)
        if matches.count > 0 {
            //inc count
            hash.count =  Int32(Int(matches.count) + 1)

            return hash
        }
        else{
            hash.count = 0
            print("zero hash:", twitterInfo.keyword)
            hash.text = twitterInfo.keyword.lowercased()
            return hash
        }
    }
    catch{
        //makes this function throw
        throw error
    }
}
}

所以匹配项本身需要更改 - 但在上面的示例中位于数组中。因此答案如下:

do {
        let matches = try context.fetch(request)
let mention = matches.first
        if matches.count > 0 {
            mention?.count = (mention?.count)! + 1
//.. more code