在swift中管理可用init的最佳方法

时间:2015-02-06 00:29:34

标签: ios swift sqlite initialization

对于使用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中不允许这样做(出于好的理由),我想避免使用类函数。

那么,您如何看待这种方法?我想我不是唯一一个有同样问题需要解决的本地数据库:)

谢谢,

0 个答案:

没有答案