2017-01-25 11 views
0

私は領域で私を返すオブジェクトに問題があります。奇妙なことは、私がそれをうまく起動すればオブジェクトをコンソールに出力すれば、その値にアクセスしようとすると空であること。戻りオブジェクトの領域にアクセスできない

次のようにオブジェクトの構造は、次のとおりです。

class Favourite : Object { 
    var character : Character! 
} 
  1. 私が好きなタイプ

    のすべてのオブジェクトを取得するオブジェクトを作成し、DB

    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'動的方法で動作していることを意味します。 「動的」では、ここではレルムであるデータベースプロバイダによって、ゲッタとセッタが追加されて注入されます。したがって、レルム内のすべてのプロパティは、 'List 'のように、Realmが明示的にそうでなければ '動的'で始まらなければなりません。 'dynamic'を使わない場合、' var character 'はRealm以外のプロパティに過ぎず、Realmにはまったく保存されません。 –

関連する問題