Ios 使用谓词的核心数据统一和过滤

Ios 使用谓词的核心数据统一和过滤,ios,swift,core-data,Ios,Swift,Core Data,我设计了一个简单的应用程序,核心数据有两个实体 主人 汽车 车主可以有多辆车,但车与一个车主相连。因此,每个车主都有自己的车,即使是同一辆车 现在,我有两个问题 我了解到可以添加唯一的约束以拥有唯一的所有者。因此,我将所有者的用户名作为约束。我应该在运行应用程序时出错,但我没有。有重复的所有者。这里怎么了 我有一个搜索栏来过滤汽车,我使用谓词过滤为“carName contains[cd]%@”,它工作正常,但如果我使用“==”或“like”以相同或其他方式进行过滤,它会崩溃,并声明错误“实体中

我设计了一个简单的应用程序,核心数据有两个实体 主人 汽车

车主可以有多辆车,但车与一个车主相连。因此,每个车主都有自己的车,即使是同一辆车

现在,我有两个问题

  • 我了解到可以添加唯一的约束以拥有唯一的所有者。因此,我将所有者的用户名作为约束。我应该在运行应用程序时出错,但我没有。有重复的所有者。这里怎么了
  • 我有一个搜索栏来过滤汽车,我使用谓词过滤为“carName contains[cd]%@”,它工作正常,但如果我使用“==”或“like”以相同或其他方式进行过滤,它会崩溃,并声明错误“实体中未找到keypath Kaushik”。我给出的谓词是“name==kaushik”。为什么要用RHS?这里怎么了
  • 仅供参考:我今天正在尝试所有这些。因此,Swift和iOS都是最新版本

    让owner=NSEntityDescription.insertNewObject(forEntityName:“owner”,进入:objectContext)作为?所有者

        Owner?.name="Kaushik"
        Owner?.address="10,downing street"
        Owner?.mobile=0123456789
        Owner?.landline= 0123456789
        lender?.userName="KV"
    
        do
        {
            try objectContext.save()
    
        }catch
        {
            print("error")
        }
    
    上面是添加所有者的代码

    有人能澄清我的疑问吗
    谢谢

    请编辑您的问题以显示相关的代码您应该能够使用
    NSPredicate(格式:“carName=\\“Kaushik\”)
    NSPredicate(格式:“carName==%@”,“Kaushik”)
    。关于唯一性约束,请检查是否有帮助。谢谢Rob,它起作用了。但是为什么我不能直接给出名称?为什么需要双引号?是的@pbasf成功了。。我更改了属性类型并返回..现在可以正常工作了,谢谢