我正在尝试获取具有属性User
的Coredata token
,但是由于出现错误提示Value of type '[User]' has no member 'token'
,我无法使其正常工作。我已经尝试了一些在堆栈上的修复,但似乎无法正常工作。
这是我的代码:
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)
}
答案 0 :(得分:2)
您非常接近,users
的类型为[User]
,因此,一个User
对象的数组,因此可以使用以下命令获取每个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)
}
或者如果您想获得最后一个(.last
或第一个(.first
)User
,您可以这样做:
do {
let users = try managedContext.fetch(request)
if let user = users.first {
print(user.token)
}
} catch {
print(error.localizedDescription)
}
答案 1 :(得分:0)
如果您尝试访问特定用户的令牌,则应在唯一属性上设置谓词。例如。例如,如果唯一属性是uniqueId:
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)
}