2015-10-24 4 views
1

У меня есть эти классы:Доступ к данным класса в классе

class FacebookDB: Object { 
    dynamic var userName: String = "" 
    dynamic var profilePicture: String = "" 
} 

class TwitterDB: Object { 
    dynamic var userName: String = "" 
    dynamic var profilePicture: String = "" 
} 

class UserDB: Object { 
    dynamic var id = 0 

    override class func primaryKey() -> String { 
     return "id" 
    } 

    dynamic var userName: String = "" 
    dynamic var firstName: String = "" 
    dynamic var lastName: String = "" 
    dynamic var email: String = "" 
    dynamic var facebookAccount = FacebookDB?() 
    dynamic var twitterAccount = TwitterDB?() 
} 

После того как я положил значение внутри userName

//user value come from facebook 
let testUser = UserDB() 
let realm = try! Realm() 

testUser.FacebookAccount?.userName = user.userName 

print(user.userName) 
print(testUser.FacebookAccount?.userName) 

Вот результат:

vivieng 
nil 

Почему может 't Я печатаю testUser.FacebookAccount?.userName?

BTW Я могу получить доступ ко всем значениям от UserDB, но ни один из FacebookDB или TwitterDB, любая идея?

ответ

1

Наконец-то я нашел, как с этим бороться.

Мне нужно создать значение подобного:

let facebookAccount = FacebookDB() 

А затем положить все, что я хочу внутри:

facebookAccount.userName = user.userName 

И, наконец, скопировать класс внутри класса:

testUser.FacebookAccount = facebookAccount 

И вуаля, вот работа!

Смежные вопросы