对于使用swift管理可用初始值设定项的最佳方法,我会对您有所了解。
我的上下文:我有一个SQLite本地数据库,如果数据库中不存在该对象,我将为我的对象返回一个init或nil。
所以我选择了这样的可用初始化程序:
class A:ParentClass {
var propertyA:String
var propertyB:String
...
init?(anId:String) {
super.init()
//try to load my object from database
if let obj = CurrentContext.MySQLiteDBB().LoadA(anId){
//id is in ParentClass
self.id = obj.id
self.propertyA = obj.propertyA
self.propertyB = obj.propertyB
self.propertyC = obj.propertyC
}else{
//the object not exists on DBB ...
return nil
}
}
这是在做这项工作,但我不想第二次分配我的所有属性(因为我也在方法LoadA()中创建一个A对象)...
最好的是
return CurrentContext.MySQLiteDBB().LoadA(anId)
但是init中不允许这样做(出于好的理由),我想避免使用类函数。
那么,您如何看待这种方法?我想我不是唯一一个有同样问题需要解决的本地数据库:)
谢谢,