質問編集履歴

1

基礎を見直すと解決できます。

2021/04/07 01:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -3,161 +3,3 @@
3
3
  各セル(ツイート)に複数のセル(ツイート)を格納したいと思っています。
4
4
 
5
5
  以下のコードで、**Tweet**が**ReplyTweet**を複数持たせたいです。
6
-
7
- ```ここに言語を入力
8
-
9
- class Tweet: Object {
10
-
11
-
12
-
13
- @objc dynamic var tweetId: Int = 0
14
-
15
- @objc dynamic var caption: String = ""
16
-
17
- @objc dynamic var timestamp: Date = Date()
18
-
19
- @objc dynamic var retweetCount: Int = 0
20
-
21
- @objc dynamic var likes: Int = 0
22
-
23
- @objc dynamic var didLike = false
24
-
25
- @objc dynamic var replyingTo: String?
26
-
27
- @objc dynamic var isReply: Bool { return replyingTo != nil }
28
-
29
-
30
-
31
- let users = LinkingObjects(fromType: User.self, property: "tweets")
32
-
33
-
34
-
35
- let replyTweet = List<ReplyTweet>()
36
-
37
-
38
-
39
- override static func primaryKey() -> String? {
40
-
41
- return "tweetId"
42
-
43
- }
44
-
45
-
46
-
47
- }
48
-
49
-
50
-
51
- class ReplyTweet: Object {
52
-
53
-
54
-
55
- @objc dynamic var replyTweetId: Int = 0
56
-
57
- @objc dynamic var replyCaption: String = ""
58
-
59
- @objc dynamic var replyTimeStamp: Date = Date()
60
-
61
- @objc dynamic var replyRetweetCount: Int = 0
62
-
63
- @objc dynamic var likes: Int = 0
64
-
65
- @objc dynamic var didLike = false
66
-
67
- @objc dynamic var replyingTo: String?
68
-
69
- @objc dynamic var isReply: Bool { return replyingTo != nil }
70
-
71
-
72
-
73
- let replyTweets = LinkingObjects(fromType: Tweet.self, property: "replyTweet")
74
-
75
-
76
-
77
- override static func primaryKey() -> String? {
78
-
79
- return "replyTweetId"
80
-
81
- }
82
-
83
-
84
-
85
- }
86
-
87
- ```
88
-
89
- ここで問題のコードなのですが、tweetとreplyで処理を分けているのですが、Listで追加したいのがreplyです。
90
-
91
- captionで入力したテキストを、replyNewIdでIDを追加し、TweetクラスのListのプロパティに入れています。
92
-
93
- しかし、これだと複数を入れることができず、別々に保存してしまいます。
94
-
95
- Listで複数を保存するにはまだ不十分なことは分かるのですが、これでできない原因が分かりません。
96
-
97
- どなたかご存知の方、どうかお願いします。
98
-
99
-
100
-
101
- ```
102
-
103
- @objc func handleUploadTweet(){
104
-
105
- view.endEditing(true)
106
-
107
- let tweetRealm = Tweet()
108
-
109
- let replyTweetRealm = ReplyTweet()
110
-
111
- guard let caption = captionTextView.text else { return }
112
-
113
-
114
-
115
- TweetService.shared.uploadTweet(caption: caption, type: config) {
116
-
117
-
118
-
119
- switch self.config {
120
-
121
- case .tweet:
122
-
123
- tweetRealm.caption = caption
124
-
125
- tweetRealm.tweetId = self.newId(model: tweetRealm)!
126
-
127
- try! self.realm.write {
128
-
129
- self.realm.add(tweetRealm, update: .all)
130
-
131
- }
132
-
133
- case .reply:
134
-
135
- replyTweetRealm.replyCaption = caption
136
-
137
- replyTweetRealm.replyTweetId = self.replyNewId(model: replyTweetRealm)!
138
-
139
- tweetRealm.replyTweet.append(replyTweetRealm)
140
-
141
-
142
-
143
- try! self.realm.write {
144
-
145
- self.realm.add(tweetRealm.replyTweet, update: .all)
146
-
147
- }
148
-
149
-
150
-
151
- }
152
-
153
-
154
-
155
- }
156
-
157
-
158
-
159
- dismiss(animated: true, completion: nil)
160
-
161
- }
162
-
163
- ```