Swift 使用核心数据查找重复条目
我正在使用核心数据在登录/注册表单中查找重复的用户名。这是我的密码:Swift 使用核心数据查找重复条目,swift,core-data,Swift,Core Data,我正在使用核心数据在登录/注册表单中查找重复的用户名。这是我的密码: let context = managedObjectContext let entity = NSEntityDescription.entity(forEntityName: "MyEntityName", in: managedObjectContext) let request = NSFetchRequest<NSFetchRequestResult>() request.entity = entity
let context = managedObjectContext
let entity = NSEntityDescription.entity(forEntityName: "MyEntityName", in: managedObjectContext)
let request = NSFetchRequest<NSFetchRequestResult>()
request.entity = entity
var Fetcherror: Error?
var mutableFetchResults = try? managedObjectContext.fetch(request)
// if mutableFetchResults == nil {
// print ("error")
// }
if mutableFetchResults?.contains(where: usernamefield.text){
print("duplicates")
return
} else {
// add the user
}
let context=managedObjectContext
让entity=NSEntityDescription.entity(在:managedObjectContext中的forEntityName:“MyEntityName”)
let request=NSFetchRequest()
request.entity=实体
var Fetcherror:错误?
var mutableFetchResults=try?managedObjectContext.fetch(请求)
//如果mutableFetchResults==nil{
//打印(“错误”)
// }
如果mutableFetchResults?.contains(其中:usernamefield.text){
打印(“副本”)
返回
}否则{
//添加用户
}
但是,我在第一个if语句中遇到以下错误:
无法将“字符串”类型的值转换为预期的参数类型“(任意)抛出->布尔”
你能帮帮我吗?提前感谢
mutableFetchResults
结果数组不包含字符串
,而是用户
类型。和usernamefield.text
类型为String
。这就是为什么您不能使用包含您使用它的方式。
首先尝试将mutableFetchResults
映射到String
类型的数组
if let mutableFetchResults = mutableFetchResults {
let stringArray = mutableFetchResults.flatMap { $0.username }
if stringArray.contains(where: usernamefield.text) {
print("duplicates")
return
}
}
username
是您要检查的User
类上的String
属性
您的完整代码应该如下所示
let context = managedObjectContext
let request: NSFetchRequest<User> = User.fetchRequest()
var fetchError: Error?
var mutableFetchResults = try? managedObjectContext.fetch(request)
// if mutableFetchResults == nil {
// print ("error")
// }
if let mutableFetchResults = mutableFetchResults {
let stringArray = mutableFetchResults.flatMap { $0.username }
if stringArray.contains(where: usernamefield.text) {
print("duplicates")
return
} else {
// add the user
}
let context=managedObjectContext
let请求:NSFetchRequest=User.fetchRequest()
var fetchError:错误?
var mutableFetchResults=try?managedObjectContext.fetch(请求)
//如果mutableFetchResults==nil{
//打印(“错误”)
// }
如果让mutableFetchResults=mutableFetchResults{
让stringArray=mutableFetchResults.flatMap{$0.username}
如果stringArray.contains(其中:usernamefield.text){
打印(“副本”)
返回
}否则{
//添加用户
}
谢谢!但是什么是someStringProperty?@dreamcode我调整了我的答案来解释someStringProperty
给出了另一个错误:“Any”类型的值没有成员“username”,这是我想要的属性check@dreamcode请尝试我的更新代码,并将您的用户
类别代码添加到您的问题中,而不是添加到我的答案中持续性错误:无法将“String”类型的值转换为预期的参数类型(String?)throws->Bool'您也可以在问题中发布您的MyEntityName
类吗?