2014-12-22 47 views
0

我看了Realm.io文档。我正在开发一个应用程序来跟踪我的车辆费用。我已经将我认为可能适用于Realm中的数据模型的东西放在一起,但我对它很陌生,不确定这是否可行,或者有更好的方法来实现。这是我所拥有的,我没有把它放在一个项目中,并试图编译。 realm.io文档对我来说有点含糊,所以也许有人可以告诉我你的想法。我已经包括在地方的一些意见,我只是不知道如何实现什么我要为...试图创建一个Swift领域数据模型

// Vehicle model 
class Vehicle : RLMObject { 
    dynamic var name = “” 
    dynamic var number = “” 
    dynamic var currentMiles = 0 
    dynamic var entries = RLMArray(objectClassName: Entry.className()) 
} 

// Entry model 
class Entry: RLMObject { 
    dynamic var vehicle: Vehicle //?? 
    dynamic var date = NSDate() 
    dynamic var expense = 0.0 
    dynamic var mileage : Vehicle.currentMiles // want to update the Vehicle mileage with each entry 

} 

// Gas model 
class Gas: Entry { 
    dynamic var gallons = 0 
    dynamic var pricePerGallon = 0.0 
} 

// OilChange model 
class OilChange : Entry { 
    dynamic var milesBetweenChanges = 0 
} 

// Other Service model 
class OtherService: Entry { 
    dynamic var notes = “” 
} 

回答

1

你在正确的轨道上!我想,唯一需要工作的模型是Entry。首先,这里是我的注解模型:

// Entry model 
class Entry: RLMObject { 
    dynamic var vehicle: Vehicle // This is valid Swift, but you'll need to set the value in the designated initializer (`init()`). 
    dynamic var date = NSDate() 
    dynamic var expense = 0.0 
    dynamic var mileage : Vehicle.currentMiles // This isn't valid Swift, since `Vehicle` is a class, and doesn't have a `currentMiles` member 
} 

你需要的是这样的:

// Entry model 
class Entry: RLMObject { 
    dynamic var vehicle = Vehicle() // Use a default value so that `init()` succeeds, but you can still use `init(vehicle: Vehicle)` in your code 
    dynamic var date = NSDate() 
    dynamic var expense = 0.0 
    dynamic var mileage = 0 

    init() { 
     // Must override init() when adding a convenience initializer 
     super.init() 
    } 

    convenience init(vehicle: Vehicle) { 
     super.init() 
     self.vehicle = vehicle 
     mileage = vehicle.currentMiles 
    } 
} 

它,你发现王国的文档模糊是不幸的。请让我们知道,如果有什么特别的,你希望我们澄清。我们是一群相当平易近人的人!

+0

我正在设计一个应用程序,并决定使用Realm。我很抱歉说你的文档含糊不清。它只是没有点击我,或者实际上它是,我只是没有意识到它。便利初始值设定项是我不认为要做的事。 我觉得它应该更难使用。我看着它,对自己说,“不 - 你在某处留下了什么东西,应该花更长的时间”。 您的文档不是模糊的,它只是我不安全或什么。这是提问的最佳地点吗?我很感谢你的回应和你的框架。真棒的东西。 – Darrell

+0

您可以继续在此处提问(确保使用“realm”标签)。祝你好运! – jpsim