2015-02-18 2 views
0

У меня есть preoloaded только для чтения realm-db, который помещается в основной комплект.Что касается области только для чтения, мне нужно сделать ссылку на путь для каждого использования?

Должен ли я сделать ссылку на этот путь для каждого запроса, который я делаю, или есть более простой способ сделать это?

//Locate database 
    let localRealmPath = NSBundle.mainBundle().pathForResource("dogs", ofType: "realm")! 

    let realm = RLMRealm(path: localRealmPath, readOnly: true, error: nil) 

    let dog = Dog.objectsInRealm(realm, "name = 'Pat'").firstObject() as Dog 

Спасибо!

+1

Эй, рыбак, да, вы должны обращаться к нему каждый раз, поэтому у вас есть правильное царство. Можете ли вы поделиться некоторыми идеями о том, что вы считаете своим идеальным способом использовать царство? – yoshyosh

+0

Спасибо за информацию! Было бы замечательно иметь функцию тега. Предположим, вы можете ссылаться на царство с именем или тегом. Таким образом, вы можете забрать его, скажем, «RLMRealm.realmWithTag (« Собаки »)». Но это, вероятно, трудно выполнить, когда путь неизвестен. – fisher

+1

Я вижу, что это было бы сложно, так как нам нужно найти способ установить правильный путь, связанный с этим тегом, как вы упомянули. Как упоминалось ниже в Marius, если вы не обращаетесь к царству из разных потоков, вы можете сохранить их в своих свойствах. – yoshyosh

ответ

2

Вам не нужно создавать экземпляр/получение нового экземпляра RLMRealm для каждого запроса, который вы делаете. Вы можете повторно использовать Real-Only-Realm для любого количества произвольных операций чтения. Просто убедитесь, что вы не получаете доступ к экземпляру RLMRealm из разных потоков.

+0

Спасибо! Я сделал ленивый var of the realm, который отлично работает и может быть повторно использован внутри области ViewController. Но я должен буду это делать в каждом VC, где мне нужно сделать выборку. Но это не biggie, просто хотел проверить, есть ли более простой вариант :)! – fisher