Ios 返回对象域不可访问

Ios 返回对象域不可访问,ios,swift,realm,Ios,Swift,Realm,我遇到了一个在领域中返回我的对象的问题,奇怪的是,如果我打印到控制台对象,如果我启动的很好,但是如果我尝试访问它的值,它会告诉我它是空的 对象的结构如下所示: class Favourite : Object { var character : Character! } 我创建了一个对象并将其添加到数据库中 let fav = Favourite() fav.character = character FavouriteDao.sharedInstance.addFavourite(c

我遇到了一个在领域中返回我的对象的问题,奇怪的是,如果我打印到控制台对象,如果我启动的很好,但是如果我尝试访问它的值,它会告诉我它是空的

对象的结构如下所示:

class Favourite : Object {
    var character : Character!
}
  • 我创建了一个对象并将其添加到数据库中

    let fav = Favourite()
    fav.character = character
    FavouriteDao.sharedInstance.addFavourite(characterFavourite: fav)
    
  • 获取收藏类型的所有对象

    func GetAllFavorites()->结果{ 返回realm.objects(favorite.self) }

  • 当我拿到物品并打印时

    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;
        };
    };
    
  • 如果我试图访问character元素,它会告诉我它是nil


  • 有人设法理解,因为如果我打印出最喜欢的对象,它会告诉我角色对象内部有,但如果我尝试接受它,它会说它不存在?

    你从一开始就完全错了。您应该先阅读领域文档

    比如说

    class Favourite : Object {
        var character : Character!
    }
    
    这不是你应该做的事


    假设您的
    字符
    定义良好,代码应该是
    动态变量字符:字符?=至少为零。

    是的,问题是动态的,我想如果属性为object,则不需要动态,好的,谢谢。
    dynamic
    表示变量以
    Objective-C
    动态方式工作。使用
    dynamic
    ,getter和setter被数据库提供者注入,做额外的事情,这里是Realm。所以,您想要在领域中使用的所有属性都应该以
    动态
    开头,除非领域明确不这样做,比如
    列表
    。如果不使用
    dynamic
    var字符
    只是一个非领域属性,根本不会保存到领域。