无法识别的选择器发送到具有可变 NSSet 的实例错误

Unrecognized selector sent to instance error with even mutable NSSet

虽然我知道这个问题经常被问到,但我还没有找到适合我的案例的解决方案。 我正在开发使用核心数据的应用程序。在核心数据中,我有一个名为 User Ent 的实体,它与名为 Hefth Ent 的实体具有一对多关系。 Hefth Ent 与一个用户实体具有反向关系。我正在尝试修改用户中的 hefths 对象集,但我总是收到此错误: setOwnerUser:]: 无法识别的选择器发送到实例 0x7fd2d25dae90 尽管我已经在其他问题中尝试了建议的解决方案,例如将集合转换为可变集合然后对其进行变异,但这对我不起作用。这是用户输入 class :

import Foundation
import CoreData

 extension UserEnt {

@NSManaged var name: String?
@NSManaged var numOfKhetma: NSNumber?
@NSManaged var profilePic: NSData?
@NSManaged var remPagesForCurrentKhetma: NSNumber?
@NSManaged var currentHefth: HefthEnt?
@NSManaged var currentMoraj3a: Moraj3aEnt?
@NSManaged var hefthSejil: NSSet?

}

这是第 1 个 class...`import Foundation 导入核心数据

extension HefthEnt {

@NSManaged var achivingPercentage: NSNumber?
@NSManaged var endDate: NSDate?
@NSManaged var numOfPages: NSNumber?
@NSManaged var remPages: NSNumber?
@NSManaged var title: String?
@NSManaged var ownerUser: UserEnt?

}

其中 ownerUser 是拥有许多此 hefth 对象的用户 这是我用来尝试向用户添加 hefth 的最后一个代码,但我仍然遇到相同的错误....

func addHefthToSejil(hefth : HefthObj, forUserOfIndex userIndex:Int)
{
    let request = NSFetchRequest(entityName: "UserEnt")
    let users = (try! context.executeFetchRequest(request)) as! [UserEnt]
    let hefthEnt = NSEntityDescription.insertNewObjectForEntityForName("HefthEnt", inManagedObjectContext: context) as! HefthEnt

    hefthEnt.numOfPages = hefth.numOfPages
    hefthEnt.endDate = hefth.endDate
    hefthEnt.remPages = hefth.numOfPages
    hefthEnt.achivingPercentage = hefth.achievingPercentage
    hefthEnt.ownerUser = users[userIndex]

    users[userIndex].mutableSetValueForKey("hefthSejil").addObject(hefthEnt)
    // the problem happens here


    do
    {
        try context.save()

    }catch
    {
        print("error")
    }

    updateAllUsers()

    }

我已经尝试了很多方法,但没有任何效果,希望我能在这里找到解决问题的方法。

试试这个:

let user = users[userIndex] as? UserEnt
let relationship = user.valueForKeyPath("hefthSejil") as? NSMutableSet
relationship.addObject(hefthEnt)