gpt4 book ai didi

xcode - 如何在 swift 'AnyObject' 中从 coredata 字典中打印出值没有名为“用户名”的成员?

转载 作者:可可西里 更新时间:2023-11-01 00:38:09 25 4
gpt4 key购买 nike

我正在尝试从我的 coredata 实体中打印出值“username”。

var request = NSFetchRequest(entityName: "Users")

request.returnsObjectsAsFaults = false

var results = context.executeFetchRequest(request, error: nil)

if (results?.count > 0) {

for result: AnyObject in results! {
println(result.username)
}
}

行 println(result.username) 给我一个编译错误 'AnyObject' does not have a member named 'username'。

最佳答案

您必须将托管对象数组转换为正确的类型:

for result in results! as [Users] {
println(result.username)
}

这假设您已经为“用户”实体创建了一个托管对象子类。

你还应该区分executeFetchRequest()是否返回了nil(即获取请求失败),或 0(即未找到对象),并使用 error 参数:

var error : NSError?
if let results = context.executeFetchRequest(request, error: &error) {
if (results.count > 0) {
for result in results as [Users] {
println(result.username)
}
} else {
println("No Users")
}
} else {
println("Fetch failed: \(error)")
// Handle error ...
}

Swift 2/Xcode 7 的 try/catch 错误处理更新:

do {
let results = try context.executeFetchRequest(request) as! [Users]
if (results.count > 0) {
for result in results {
print(result.username)
}
} else {
print("No Users")
}
} catch let error as NSError {
// failure
print("Fetch failed: \(error.localizedDescription)")
}

注意强制转换as! [Users] 在这里是可以接受的。返回的对象始终是核心数据模型检查器中配置的相应类的实例,否则你有应该及早发现的编程错误

关于xcode - 如何在 swift 'AnyObject' 中从 coredata 字典中打印出值没有名为“用户名”的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26458209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com