Listに格納するためのクラスを作成するのはどうでしょうか?
例えばのイメージですが、下記のような方法はできませんでしょうか?
Swift
1enum SNSType: String {
2 case Twitter = "1"
3 case Facebook = "2"
4}
5
6// 全てのSNS情報を網羅するクラスを作成する
7class SNSAccount: Object {
8 @objc dynamic var userID = ""
9 @objc dynamic var screenName = ""
10 @objc dynamic var userName = ""
11 @objc dynamic var imageURL = ""
12 @objc private dynamic var type = ""
13
14 var snsType: SNSType? {
15 get {
16 return SNSType(rawValue: type)
17 }
18 set {
19 type = newValue?.rawValue ?? ""
20 }
21 }
22}
23
24class UserProfile: Object {
25 //SNSTypeでどのSNS情報かを判断する
26 let list = List<SNSAccount>()
27}
Swift
1
2enum SNSType: String {
3 case Twitter = "1"
4 case Facebook = "2"
5}
6
7class Twitter: Object {
8 @objc dynamic var id = ""
9 @objc dynamic var userID = ""
10 @objc dynamic var screenName = ""
11 @objc dynamic var userName = ""
12 @objc dynamic var imageURL = ""
13}
14
15class Facebook: Object {
16 @objc dynamic var id = ""
17 @objc dynamic var userName = ""
18 @objc dynamic var imageURL = ""
19}
20
21// FacebookやTwitterの情報を探すためのキーを格納するクラス
22class SNSManagement: Object {
23
24 // TwitterやFacebookのid
25 @objc dynamic var id = ""
26 @objc private dynamic var type = ""
27
28 var snsType: SNSType? {
29 get {
30 return SNSType(rawValue: type)
31 }
32 set {
33 type = newValue?.rawValue ?? ""
34 }
35 }
36}
37
38class UserProfile: Object {
39
40 //SNSTypeでどのSNS情報かを判断し、idから各SNS情報を取得する
41 let list = List<SNSManagement>()
42}
43