2017-01-25 1 views
0

У меня проблемы с объектом, который возвращает меня в Realm, странно, что если я буду печатать консоль объекта, если я начну его хорошо, но, если я попытаюсь получить доступ к его значению, он подскажет мне что он пуст.Объект возврата объекта недоступен

Структура объекта выглядит следующим образом:

class Favourite : Object { 
    var character : Character! 
} 
  1. создать объект и добавить его в базу данных

    let fav = Favourite() 
    fav.character = character 
    FavouriteDao.sharedInstance.addFavourite(characterFavourite: fav) 
    
  2. Получить все объекты любимого типа

    func getAllFavourites() -> Результаты { return realm.objects (Favourite.s Эльф) }

  3. Когда я получаю деталь и сделать отпечатки

    Favourite { 
    character = Character { 
        name = Spider-Man; 
        descriptionC = Bitten by a radioactive spider, high school student Peter Parker gained the speed, strength and powers of a spider. Adopting the name Spider-Man, Peter hoped to start a career using his new abilities. Taught that with great power comes great responsibility, Spidey has vowed to use his powers to help people.; 
        thumbnail = Thumbnail { 
         id = 815D93D0-C116-4267-978C-9E47C0074D0D; 
         path = http://i.annihil.us/u/prod/marvel/i/mg/3/50/526548a343e4b; 
         extensionImage = jpg; 
        }; 
    }; 
    
  4. При попытке доступа к элементу символов он говорит мне, что это ноль

Кому-то удается понять, потому что, если я делаю отпечаток любимого объекта, он показывает мне, что внутри объекта символа есть, но, тем не менее, если я попытаюсь присоединиться к нему, он говорит, что его не существует?

ответ

1

То, что вы делаете, совершенно неверно с самого начала. Сначала вы должны прочитать документы в области. https://realm.io/docs/swift/latest/#getting-started

Например,.

class Favourite : Object { 
    var character : Character! 
} 

Это не то, что вы должны делать в Царстве.

Предполагая, что ваш Character четко определен, код должен быть не менее dynamic var character : Character? = nil.

+0

Да, проблема динамическая Я думал, что если свойство объекта не требуется динамическое, хорошо спасибо. – Alejandro

+0

'dynamic' означает, что переменная работает в динамическом режиме« Objective-C ». С помощью 'dynamic', getter и setter вводятся, делая вещи экстрас, поставщиком базы данных, который здесь является Realm. Таким образом, все свойства, которые вы хотите в Realm, должны начинаться с 'dynamic', если Realm явно не подходит, например' List '. Если вы не используете 'dynamic', символ' var 'является просто не-Realm-свойством и вообще не будет сохраняться в Realm. –