diff --git a/Yep/AppDelegate.swift b/Yep/AppDelegate.swift index 3a47bf2b..78567de7 100644 --- a/Yep/AppDelegate.swift +++ b/Yep/AppDelegate.swift @@ -326,11 +326,14 @@ class AppDelegate: UIResponder, UIApplicationDelegate { guard let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ConversationViewController") as? ConversationViewController, - realm = try? Realm(), - feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm) else { + realm = try? Realm() else { return } + realm.beginWrite() + let feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm) + let _ = try? realm.commitWrite() + vc.conversation = feedConversation vc.conversationFeed = ConversationFeed.DiscoveredFeedType(feed) diff --git a/Yep/Realm/Models.swift b/Yep/Realm/Models.swift index b57d7c9c..0a1f3226 100644 --- a/Yep/Realm/Models.swift +++ b/Yep/Realm/Models.swift @@ -971,10 +971,8 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm if let feed = feedWithFeedID(feedData.id, inRealm: realm) { println("saveFeed: \(feedData.kind.rawValue), \(feed.feedID), do nothing.") - //let _ = try? realm.write { - feed.kind = feedData.kind.rawValue - feed.deleted = false - //} + feed.kind = feedData.kind.rawValue + feed.deleted = false #if DEBUG if feed.group == nil { @@ -1000,9 +998,7 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm newFeed.messagesCount = feedData.messagesCount if let feedSkill = feedData.skill { - let _ = try? realm.write { - newFeed.skill = userSkillsFromSkills([feedSkill], inRealm: realm).first - } + newFeed.skill = userSkillsFromSkills([feedSkill], inRealm: realm).first } if let attachment = feedData.attachment { @@ -1027,17 +1023,13 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm let newSocialWorkGithubRepo = SocialWorkGithubRepo() newSocialWorkGithubRepo.fillWithFeedGithubRepo(repo) - let _ = try? realm.write { - realm.add(newSocialWorkGithubRepo) - } + realm.add(newSocialWorkGithubRepo) socialWorkGithubRepo = newSocialWorkGithubRepo } if let socialWorkGithubRepo = socialWorkGithubRepo { - let _ = try? realm.write { - socialWorkGithubRepo.synced = true - } + socialWorkGithubRepo.synced = true } socialWork.githubRepo = socialWorkGithubRepo @@ -1056,17 +1048,13 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm let newSocialWorkDribbbleShot = SocialWorkDribbbleShot() newSocialWorkDribbbleShot.fillWithFeedDribbbleShot(shot) - let _ = try? realm.write { - realm.add(newSocialWorkDribbbleShot) - } + realm.add(newSocialWorkDribbbleShot) socialWorkDribbbleShot = newSocialWorkDribbbleShot } if let socialWorkDribbbleShot = socialWorkDribbbleShot { - let _ = try? realm.write { - socialWorkDribbbleShot.synced = true - } + socialWorkDribbbleShot.synced = true } socialWork.dribbbleShot = socialWorkDribbbleShot @@ -1097,10 +1085,8 @@ func saveFeedWithDiscoveredFeed(feedData: DiscoveredFeed, group: Group, inRealm newFeed.group = group - //let _ = try? realm.write { - group.groupType = GroupType.Public.rawValue - realm.add(newFeed) - //} + group.groupType = GroupType.Public.rawValue + realm.add(newFeed) } } diff --git a/Yep/Services/YepServiceSync.swift b/Yep/Services/YepServiceSync.swift index ffbd0865..c92d8f15 100644 --- a/Yep/Services/YepServiceSync.swift +++ b/Yep/Services/YepServiceSync.swift @@ -38,38 +38,33 @@ func getOrCreateUserWithDiscoverUser(discoveredUser: DiscoveredUser, inRealm rea newUser.friendState = UserFriendState.Stranger.rawValue - let _ = try? realm.write { - realm.add(newUser) - } + realm.add(newUser) user = newUser } if let user = user { - let _ = try? realm.write { + // 只更新用户信息即可 - // 只更新用户信息即可 + user.lastSignInUnixTime = discoveredUser.lastSignInUnixTime - user.lastSignInUnixTime = discoveredUser.lastSignInUnixTime + user.username = discoveredUser.username ?? "" - user.username = discoveredUser.username ?? "" + user.nickname = discoveredUser.nickname - user.nickname = discoveredUser.nickname + if let introduction = discoveredUser.introduction { + user.introduction = introduction + } - if let introduction = discoveredUser.introduction { - user.introduction = introduction - } + user.avatarURLString = discoveredUser.avatarURLString - user.avatarURLString = discoveredUser.avatarURLString + user.longitude = discoveredUser.longitude - user.longitude = discoveredUser.longitude - - user.latitude = discoveredUser.latitude - - if let badge = discoveredUser.badge { - user.badge = badge - } + user.latitude = discoveredUser.latitude + + if let badge = discoveredUser.badge { + user.badge = badge } } diff --git a/Yep/ViewControllers/Conversation/ConversationViewController+Feed.swift b/Yep/ViewControllers/Conversation/ConversationViewController+Feed.swift index f65e32da..32d3a332 100644 --- a/Yep/ViewControllers/Conversation/ConversationViewController+Feed.swift +++ b/Yep/ViewControllers/Conversation/ConversationViewController+Feed.swift @@ -22,9 +22,7 @@ extension ConversationViewController { newGroup.groupID = groupID newGroup.includeMe = false - let _ = try? realm.write { - realm.add(newGroup) - } + realm.add(newGroup) group = newGroup } @@ -33,9 +31,7 @@ extension ConversationViewController { return nil } - let _ = try? realm.write { - feedGroup.groupType = GroupType.Public.rawValue - } + feedGroup.groupType = GroupType.Public.rawValue if feedGroup.conversation == nil { @@ -44,9 +40,7 @@ extension ConversationViewController { newConversation.type = ConversationType.Group.rawValue newConversation.withGroup = feedGroup - let _ = try? realm.write { - realm.add(newConversation) - } + realm.add(newConversation) } guard let feedConversation = feedGroup.conversation else { @@ -60,9 +54,7 @@ extension ConversationViewController { */ if let group = group { - let _ = try? realm.write { - saveFeedWithDiscoveredFeed(feed, group: group, inRealm: realm) - } + saveFeedWithDiscoveredFeed(feed, group: group, inRealm: realm) } return feedConversation diff --git a/Yep/ViewControllers/Conversation/ConversationViewController.swift b/Yep/ViewControllers/Conversation/ConversationViewController.swift index 740515b9..550e5bff 100644 --- a/Yep/ViewControllers/Conversation/ConversationViewController.swift +++ b/Yep/ViewControllers/Conversation/ConversationViewController.swift @@ -51,7 +51,11 @@ enum ConversationFeed { guard let realm = try? Realm() else { return nil } - return getOrCreateUserWithDiscoverUser(discoveredFeed.creator, inRealm: realm) + realm.beginWrite() + let user = getOrCreateUserWithDiscoverUser(discoveredFeed.creator, inRealm: realm) + let _ = try? realm.commitWrite() + + return user case .FeedType(let feed): return feed.creator diff --git a/Yep/ViewControllers/Feeds/FeedsViewController.swift b/Yep/ViewControllers/Feeds/FeedsViewController.swift index 53d06ce2..548c4aae 100644 --- a/Yep/ViewControllers/Feeds/FeedsViewController.swift +++ b/Yep/ViewControllers/Feeds/FeedsViewController.swift @@ -580,11 +580,14 @@ class FeedsViewController: BaseViewController { guard let indexPath = sender as? NSIndexPath, feed = feeds[safe: indexPath.row], - realm = try? Realm(), - feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm) else { + realm = try? Realm() else { return } + realm.beginWrite() + let feedConversation = vc.prepareConversationForFeed(feed, inRealm: realm) + let _ = try? realm.commitWrite() + vc.conversation = feedConversation vc.conversationFeed = ConversationFeed.DiscoveredFeedType(feed) vc.afterDeletedFeedAction = { [weak self] in