2014-12-22 2 views
0

Realm.io 문서를 살펴 봤습니다. 나는 자동차 경비를 추적하기위한 신청서 작성 중입니다. 나는 렐름에서 데이터 모델에 대해 효과가있을 것이라고 생각하는 것을 종합 해 보았습니다. 그러나이 모델을 처음 접했을 때 이것이 효과가 있거나 더 좋은 방법이 있는지 확실하지 않습니다. 여기에 제가 가지고있는 것이 있습니다. 나는 이것을 프로젝트에 넣지 않았고 아직 컴파일하려고했습니다. realm.io 워드 프로세서는 나에게 다소 모호합니다. 그래서 누군가가 당신이 생각하는 것을 말해 줄 수 있습니다. 나는 내가하는 일을 성취 할 수있는 방법을 모르겠다는 의견을 몇 가지 포함 시켰습니다 ...스위프트 영역 데이터 모델을 만들려고 시도합니다.

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

그것은 당신이 영역의 문서가 애매 찾을 불행 :

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

당신이 원하는 것은이 같은 것입니다 : 첫째, 여기 내 주석을 모델입니다. 특별히 알려 주실 점이 있으면 알려주십시오. 우리는 꽤 친근한 무리입니다!

+0

저는 응용 프로그램을 디자인 중이며 영역을 사용하기로 결정했습니다. 귀하의 문서가 모호하다는 점에 대해 사과드립니다. 그것은 단지 나와 함께 클릭하지 않았거나, 사실 그것은 단지 그것을 깨닫지 못했습니다. 편의 초기화 프로그램은 내가 생각하지 않은 것입니다. 사용하기가 더 어려워야한다고 생각합니다. 나는 그것을보고 스스로에게 이렇게 말합니다. "아니요. 당신은 어딘가에서 뭔가를 버렸습니다. 설명서가 모호하지 않으며, 제게 안전하지 않거나 뭔가 있습니다. 이 질문이 가장 좋은 곳입니까? 귀하의 응답과 귀하의 프레임 워크에 감사드립니다. 신난다. – Darrell

+0

여기에서 계속 질문 할 수 있습니다 ("영역"태그를 사용하십시오). 행운을 빕니다! – jpsim