Я загрузил Realm и открыл приложение RealmExamples.Изменение количества владельцев в realmexamples
приложение RealmExamples входит в вниз нагрузки от http://realm.io/docs/cocoa/0.90.4/
Попытка добавить владельца, чтобы получить распечатку, чтобы дать больше, чем 1. Кроме того, добавлен возраст распечатать
println("\(dog.name) has \(ownerNames.count) owners (\(ownerNames)) is \(dog.age) years old")
I добавил собаку и владельца и дал одной собаке двух хозяев, но печать дает всего 1 владелец дважды.
import UIKit
import Realm
class Dog: RLMObject {
dynamic var name = ""
dynamic var age = 0
var owners: [Person] {
// Realm doesn't persist this property because it only has a getter defined
// Define "owners" as the inverse relationship to Person.dogs
return linkingObjectsOfClass("Person", forProperty: "dogs") as [Person]
}
}
class Person: RLMObject {
dynamic var name = ""
dynamic var dogs = RLMArray(objectClassName: Dog.className())
}
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window!.rootViewController = UIViewController()
self.window!.makeKeyAndVisible()
NSFileManager.defaultManager().removeItemAtPath(RLMRealm.defaultRealmPath(), error: nil)
let realm = RLMRealm.defaultRealm()
realm.transactionWithBlock {
Person.createInRealm(realm, withObject: ["John", [["Fido", 1]]])
Person.createInRealm(realm, withObject: ["colin", [["Fido", 1]]])
Person.createInRealm(realm, withObject: ["colin", [["simba", 3]]])
}
// Log all dogs and their owners using the "owners" inverse relationship
let allDogs = Dog.allObjects()
for dog in allDogs {
let dog = dog as Dog
let ownerNames = dog.owners.map { $0.name }
println("\(dog.name) has \(ownerNames.count) owners \(ownerNames) is \(dog.age) years old")
}
return true
}
}
Println дает
Fido has 1 owners ([John]) is 1 years old
Fido has 1 owners ([colin]) is 1 years old
simba has 1 owners ([colin]) is 3 years old
, что я должен сделать, чтобы получить Fido имеет 2 владельцев.
Привет, cpmac, вы можете поделиться немного больше кода о том, как настроены ваши модели и как вы запрашиваете базу данных для имен владельцев? – yoshyosh
Спасибо за ответ. Я добавил полный код файла appdelagate – cpmac