Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何获取Coredata?_Ios_Swift_Core Data_Swift4 - Fatal编程技术网

Ios 如何获取Coredata?

Ios 如何获取Coredata?,ios,swift,core-data,swift4,Ios,Swift,Core Data,Swift4,我正在尝试使用属性令牌获取CoredataUser,但是我无法让它工作,因为我得到一个错误,即类型为“[User]”的值没有成员“令牌”。我在堆栈上尝试了几次修复,但似乎不起作用 这是我的密码: let managedContext = coreDataStack.managedContext let request = NSFetchRequest<User>(entityName: "User") do { let users = try managedContext.f

我正在尝试使用属性
令牌
获取Coredata
User
,但是我无法让它工作,因为我得到一个错误,即类型为“[User]”的
值没有成员“令牌”
。我在堆栈上尝试了几次修复,但似乎不起作用

这是我的密码:

let managedContext = coreDataStack.managedContext
let request = NSFetchRequest<User>(entityName: "User")
do {
    let users = try managedContext.fetch(request)
    print(users)
    print(users.token)

} catch {
    print(error.localizedDescription)
}
让managedContext=coreDataStack.managedContext
let request=NSFetchRequest(entityName:“用户”)
做{
let users=try managedContext.fetch(请求)
打印(用户)
打印(users.token)
}抓住{
打印(错误。本地化描述)
}

您非常接近,
用户的类型是
[User]
,因此是
用户
对象的数组,因此您可以通过以下方式获得每个
用户的令牌:

let managedContext = coreDataStack.managedContext
let request = NSFetchRequest<User>(entityName: "User")
do {
    let users = try managedContext.fetch(request)
    for user in users {
        print(user.token)
    }
} catch {
   print(error.localizedDescription)
}

如果您试图访问特定用户的令牌,则应在唯一属性上设置谓词。例如,如果唯一属性是(例如)唯一ID:

let managedContext = coreDataStack.managedContext 
let request =    NSFetchRequest<User>(entityName: "User") 
request.predicate =    NSPredicate(format: "uniqueId == %@", uniqueId)  
do {  
let users =    try managedContext.fetch(request)  
  if let user = users.last {   
  print(user.token)  
  }  
} catch { 
 print(error.localizedDescription)  
}
让managedContext=coreDataStack.managedContext
let request=NSFetchRequest(entityName:“用户”)
request.predicate=NSPredicate(格式:“uniqueId==%@”,uniqueId)
做{
let users=try managedContext.fetch(请求)
如果let user=users.last{
打印(user.token)
}  
}捕获{
打印(错误。本地化描述)
}

users
是类
User
的对象数组。因此,该数组没有
标记
。您可能需要执行
打印(“用户令牌:\(users.map{$0.token})”
?@Larme谢谢您的工作
let managedContext = coreDataStack.managedContext 
let request =    NSFetchRequest<User>(entityName: "User") 
request.predicate =    NSPredicate(format: "uniqueId == %@", uniqueId)  
do {  
let users =    try managedContext.fetch(request)  
  if let user = users.last {   
  print(user.token)  
  }  
} catch { 
 print(error.localizedDescription)  
}