gpt4 book ai didi

ios - 为什么查询(DBAccess)第一次在 Id 属性中返回 nil?

转载 作者:行者123 更新时间:2023-11-30 14:04:40 25 4
gpt4 key购买 nike

我有两个类。第一个是 AbstractEntity.swift:

class AbstractEntity : DBObject{
//...
}

另外一个是User.swift,它继承了AbstractEntity。

class User: AbstractEntity {
dynamic var Sync: NSNumber?
dynamic var Password: NSString?
dynamic var id_Worker: NSNumber?
dynamic var Login: NSString?
}

在我的主数据库 Controller 中,我有这个方法:

func getObjectByID(ID: NSNumber, entityClass: AnyClass)-> AbstractEntity{
println("String value = "+ID.stringValue)
var query = entityClass.query().whereWithFormat("id = %@", withParameters: [ID.stringValue])

var resSet = query.fetch()
var abstractEntity = AbstractEntity()
if (resSet.count > 0){
abstractEntity = resSet[0] as! AbstractEntity
}
return abstractEntity
}

问题是,当我尝试通过 id 从数据库获取对象时,我的 Id 值为零。而且只有当我启动我的应用程序时才会第一次发生这种情况。

var user = getObjectByID(2, entityClass: User.classForCoder())

enter image description here

我第二次得到正确的值: enter image description here

为什么会发生这种情况?

最佳答案

由于这些不是 DBAccess 表,因此我们需要在将它们用于任何地方之前确保它们兼容。尽管我们会将其记录为错误并在将来的版本中修复它,但您应该能够通过调用来解决此问题:

+(void)setupTablesFromClasses:(Class)classDecl,...;

它将创建对象,并在使用之前缓存架构。

谢谢阿德里安

关于ios - 为什么查询(DBAccess)第一次在 Id 属性中返回 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32562812/

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