2014-12-22 3 views
0

Я просмотрел документы Realm.io. Я работаю над приложением, чтобы отслеживать расходы на мой автомобиль. Я собрал то, что, как я думаю, может работать для модели данных в Realm, но я новичок в ней и не уверен, что это будет что-то, что будет работать, или если есть лучший способ сделать это. Вот что у меня есть, и я не ставил это в проект и пытался скомпилировать. Документы realm.io немного расплывчаты для меня, поэтому, возможно, кто-то может рассказать мне, что вы думаете. Я включил некоторые комментарии в местах, где я просто не уверен, как достичь того, что я собираюсь делать ...Попытка создать модель данных Swift Realm

// 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 
    } 
} 

Очень жаль, что вы нашли документы Realm расплывчато. Пожалуйста, сообщите нам, если есть что-нибудь, в частности, вы хотели бы, чтобы мы уточнили. Мы довольно доступная группа!

+0

Я разрабатываю приложение и решил использовать Королевство. Прошу прощения за то, что ваша документация расплывчата. Он просто не нажимал на меня, или на самом деле это было, и я просто этого не осознавал. Инициализатор удобства - это то, что я не думал делать. Я думаю, что это просто кажется, что это должно быть труднее использовать. Я смотрю на это и говорю себе: «Нет, вы что-то где-то оставили, это должно было занять больше времени». Ваша документация не расплывчата, это просто я не уверен или что-то в этом роде. Это лучшее место, где можно задавать вопросы? Я ценю ваш ответ и ваши рамки. Удивительный материал. – Darrell

+0

Здесь вы можете задавать вопросы (обязательно используйте тег «realm»). Удачи! – jpsim

 Смежные вопросы

  • Нет связанных вопросов^_^