فهرست منبع

1.升级IM SDK
2.单聊输入中。。。

Steven 7 ماه پیش
والد
کامیت
45bc82ba8d
100فایلهای تغییر یافته به همراه349 افزوده شده و 216 حذف شده
  1. 1 13
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. 1 1
      KulexiuForStudent/KulexiuForStudent.xcodeproj/xcshareddata/xcschemes/KulexiuForStudent.xcscheme
  3. 1 1
      KulexiuForStudent/KulexiuForStudent/Common/Tools/GifRefresh/KSNewGifRefreshFooter.m
  4. 17 0
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatConversationViewController.m
  5. 120 0
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/TXCustom/KSTXC2CChatViewController.m
  6. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/TXCustom/KSTXGroupChatViewController.m
  7. 2 2
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/View/GroupSettingBodyView.xib
  8. 3 3
      KulexiuForStudent/Podfile
  9. 141 145
      KulexiuForStudent/Podfile.lock
  10. 1 0
      KulexiuForStudent/Pods/Headers/Private/MJRefresh/MJRefreshNormalTrailer.h
  11. 1 0
      KulexiuForStudent/Pods/Headers/Private/MJRefresh/MJRefreshStateTrailer.h
  12. 1 0
      KulexiuForStudent/Pods/Headers/Private/MJRefresh/MJRefreshTrailer.h
  13. 1 0
      KulexiuForStudent/Pods/Headers/Private/MJRefresh/UICollectionViewLayout+MJRefresh.h
  14. 1 0
      KulexiuForStudent/Pods/Headers/Private/SDWebImage/UIView+WebCacheState.h
  15. 1 0
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TIMCommonMediator.h
  16. 1 0
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TIMRTLUtil.h
  17. 1 0
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUIEmojiMeditorProtocol.h
  18. 1 0
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUIRelationUserModel.h
  19. 1 0
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUISecurityStrikeView.h
  20. 0 1
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUITagsCell.h
  21. 0 1
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUITagsModel.h
  22. 0 1
      KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUITagsView.h
  23. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/EMVoiceConverter.h
  24. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatContextEmojiDetailController.h
  25. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopContextExtionView.h
  26. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopContextRecentView.h
  27. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopEmojiView.h
  28. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopMenuDefine.h
  29. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopRecentView.h
  30. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiCell.h
  31. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiCellData.h
  32. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiConfig.h
  33. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiMeditorProtocolProvider.h
  34. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIFaceSegementScrollView.h
  35. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIFaceVerticalView.h
  36. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIGroupPinCell.h
  37. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIGroupPinPageViewController.h
  38. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TXChatMusicMessage.h
  39. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TXChatMusicShareCell.h
  40. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TXLiveShareCell.h
  41. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TXLiveShareMessage.h
  42. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TXShareLiveCellContentView.h
  43. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/TXShareMusicCellContentView.h
  44. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/amrFileCodec.h
  45. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/dec_if.h
  46. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/if_rom.h
  47. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/interf_dec.h
  48. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIChat/interf_enc.h
  49. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUICore/OfflinePushExtBusinessInfo.h
  50. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUICore/OfflinePushExtConfigInfo.h
  51. 1 0
      KulexiuForStudent/Pods/Headers/Private/TUICore/OfflinePushExtInfo.h
  52. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIGroup/TUIAddCell.h
  53. 0 1
      KulexiuForStudent/Pods/Headers/Private/TUIGroup/TUIAddCellData.h
  54. 1 0
      KulexiuForStudent/Pods/Headers/Public/MJRefresh/MJRefreshNormalTrailer.h
  55. 1 0
      KulexiuForStudent/Pods/Headers/Public/MJRefresh/MJRefreshStateTrailer.h
  56. 1 0
      KulexiuForStudent/Pods/Headers/Public/MJRefresh/MJRefreshTrailer.h
  57. 1 0
      KulexiuForStudent/Pods/Headers/Public/MJRefresh/UICollectionViewLayout+MJRefresh.h
  58. 1 0
      KulexiuForStudent/Pods/Headers/Public/SDWebImage/UIView+WebCacheState.h
  59. 1 0
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TIMCommonMediator.h
  60. 1 0
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TIMRTLUtil.h
  61. 1 0
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUIEmojiMeditorProtocol.h
  62. 1 0
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUIRelationUserModel.h
  63. 1 0
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUISecurityStrikeView.h
  64. 0 1
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUITagsCell.h
  65. 0 1
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUITagsModel.h
  66. 0 1
      KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUITagsView.h
  67. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/EMVoiceConverter.h
  68. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatContextEmojiDetailController.h
  69. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopContextExtionView.h
  70. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopContextRecentView.h
  71. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopEmojiView.h
  72. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopMenuDefine.h
  73. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopRecentView.h
  74. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiCell.h
  75. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiCellData.h
  76. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiConfig.h
  77. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiMeditorProtocolProvider.h
  78. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIFaceSegementScrollView.h
  79. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIFaceVerticalView.h
  80. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIGroupPinCell.h
  81. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIGroupPinPageViewController.h
  82. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TXChatMusicMessage.h
  83. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TXChatMusicShareCell.h
  84. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TXLiveShareCell.h
  85. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TXLiveShareMessage.h
  86. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TXShareLiveCellContentView.h
  87. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/TXShareMusicCellContentView.h
  88. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/amrFileCodec.h
  89. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/dec_if.h
  90. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/if_rom.h
  91. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/interf_dec.h
  92. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIChat/interf_enc.h
  93. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUICore/OfflinePushExtBusinessInfo.h
  94. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUICore/OfflinePushExtConfigInfo.h
  95. 1 0
      KulexiuForStudent/Pods/Headers/Public/TUICore/OfflinePushExtInfo.h
  96. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIGroup/TUIAddCell.h
  97. 0 1
      KulexiuForStudent/Pods/Headers/Public/TUIGroup/TUIAddCellData.h
  98. 13 2
      KulexiuForStudent/Pods/MJExtension/MJExtension/NSObject+MJCoding.h
  99. 6 1
      KulexiuForStudent/Pods/MJExtension/MJExtension/NSObject+MJCoding.m
  100. 1 1
      KulexiuForStudent/Pods/MJExtension/MJExtension/NSObject+MJKeyValue.m

+ 1 - 13
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -6144,7 +6144,7 @@
 			isa = PBXProject;
 			attributes = {
 				BuildIndependentTargetsInParallel = 1;
-				LastUpgradeCheck = 1540;
+				LastUpgradeCheck = 1600;
 				TargetAttributes = {
 					275E8AA427E18F8800DD3F6E = {
 						CreatedOnToolsVersion = 13.2.1;
@@ -7536,8 +7536,6 @@
 					"-l\"jcore-noidfa-ios-2.7.1\"",
 					"-l\"jpush-ios-4.3.0\"",
 					"-l\"lottie-ios\"",
-					"-l\"opencore-amrnb\"",
-					"-l\"opencore-amrwb\"",
 					"-l\"resolv\"",
 					"-l\"sqlite3\"",
 					"-l\"stdc++\"",
@@ -7723,8 +7721,6 @@
 					"-l\"jcore-noidfa-ios-2.7.1\"",
 					"-l\"jpush-ios-4.3.0\"",
 					"-l\"lottie-ios\"",
-					"-l\"opencore-amrnb\"",
-					"-l\"opencore-amrwb\"",
 					"-l\"resolv\"",
 					"-l\"sqlite3\"",
 					"-l\"stdc++\"",
@@ -7851,7 +7847,6 @@
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = 04AE318E8988C2AC148D551B /* Pods-KulexiuForStudent-KulexiuForStudentUITests.debug.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = P664H7S5LL;
@@ -7872,7 +7867,6 @@
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = D5D730A1D1EC18E5028F1AD7 /* Pods-KulexiuForStudent-KulexiuForStudentUITests.release.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = P664H7S5LL;
@@ -8056,8 +8050,6 @@
 					"-l\"jcore-noidfa-ios-2.7.1\"",
 					"-l\"jpush-ios-4.3.0\"",
 					"-l\"lottie-ios\"",
-					"-l\"opencore-amrnb\"",
-					"-l\"opencore-amrwb\"",
 					"-l\"resolv\"",
 					"-l\"sqlite3\"",
 					"-l\"stdc++\"",
@@ -8163,7 +8155,6 @@
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = 27D80AB506D2600940ACA6C6 /* Pods-KulexiuForStudent-KulexiuForStudentUITests.dev.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = P664H7S5LL;
@@ -8347,8 +8338,6 @@
 					"-l\"jcore-noidfa-ios-2.7.1\"",
 					"-l\"jpush-ios-4.3.0\"",
 					"-l\"lottie-ios\"",
-					"-l\"opencore-amrnb\"",
-					"-l\"opencore-amrwb\"",
 					"-l\"resolv\"",
 					"-l\"sqlite3\"",
 					"-l\"stdc++\"",
@@ -8454,7 +8443,6 @@
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = 898B9EE400ADCCF44DE1C3BE /* Pods-KulexiuForStudent-KulexiuForStudentUITests.test.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				CODE_SIGN_STYLE = Automatic;
 				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = P664H7S5LL;

+ 1 - 1
KulexiuForStudent/KulexiuForStudent.xcodeproj/xcshareddata/xcschemes/KulexiuForStudent.xcscheme

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "1540"
+   LastUpgradeVersion = "1600"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Common/Tools/GifRefresh/KSNewGifRefreshFooter.m

@@ -46,7 +46,7 @@
         self.gifView.contentMode = UIViewContentModeCenter;
     } else {
         self.gifView.contentMode = UIViewContentModeRight;
-        self.gifView.mj_w = self.mj_w * 0.5 - self.labelLeftInset - self.stateLabel.mj_textWith * 0.5;
+        self.gifView.mj_w = self.mj_w * 0.5 - self.labelLeftInset - self.stateLabel.mj_textWidth * 0.5;
     }
 }
 

+ 17 - 0
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatConversationViewController.m

@@ -36,6 +36,23 @@
     self.vc.conversationData = self.conversation;
     [self addChildViewController:self.vc];
     [self.view addSubview:self.vc.view];
+    
+    // 关注变化
+    MJWeakSelf;
+    [[RACObserve(self.vc.conversationData, title) distinctUntilChanged] subscribeNext:^(NSString *title) {
+        [weakSelf allocTitle:title];
+    }];
+
+    [[RACObserve(self.vc.conversationData, otherSideTyping) distinctUntilChanged] subscribeNext:^(id otherSideTyping) {
+      BOOL otherSideTypingFlag = [otherSideTyping boolValue];
+      if (!otherSideTypingFlag) {
+          [weakSelf.vc checkTitle:YES];
+      }
+      else {
+          NSString *typingText = [NSString stringWithFormat:@"%@...", TIMCommonLocalizableString(TUIKitTyping)];
+          [weakSelf allocTitle:typingText];
+      }
+    }];
 }
 
 - (void)viewWillAppear:(BOOL)animated {

+ 120 - 0
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/TXCustom/KSTXC2CChatViewController.m

@@ -6,16 +6,136 @@
 //
 
 #import "KSTXC2CChatViewController.h"
+#import "TUIBaseChatViewController+ProtectedAPI.h"
+#import "TUIChatConfig.h"
+#import "TUICloudCustomDataTypeCenter.h"
+#import "TUILinkCellData.h"
+#import "TUIMessageController.h"
+#import "TUIMessageDataProvider.h"
+
+#define kC2CTypingTime 30.0
 
 @interface KSTXC2CChatViewController ()
 
+// 如果满足了一次sendTypingBaseCondation 则当前会话未退出前都使用 sendTypingBaseCondationInVC
+// If one sendTypingBaseCondation is satisfied, sendTypingBaseCondationInVC is used until the current session exits
+
+@property(nonatomic, assign) BOOL sendTypingBaseCondationInVC;
+
+
 @end
 
 @implementation KSTXC2CChatViewController
 
+- (void)dealloc {
+    self.sendTypingBaseCondationInVC = NO;
+}
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
+    self.sendTypingBaseCondationInVC = NO;
+}
+
+#pragma mark - Override Methods
+- (NSString *)forwardTitleWithMyName:(NSString *)nameStr {
+    return [NSString stringWithFormat:TIMCommonLocalizableString(TUIKitRelayChatHistoryForSomebodyFormat), self.conversationData.title, nameStr];
+}
+
+- (void)inputController:(TUIInputController *)inputController didSelectMoreCell:(TUIInputMoreCell *)cell {
+    [super inputController:inputController didSelectMoreCell:cell];
+}
+
+- (void)inputControllerBeginTyping:(TUIInputController *)inputController {
+    [super inputControllerBeginTyping:inputController];
+
+    [self sendTypingMsgByStatus:YES];
+}
+
+- (void)inputControllerEndTyping:(TUIInputController *)inputController {
+    [super inputControllerEndTyping:inputController];
+
+    [self sendTypingMsgByStatus:NO];
+}
+
+- (BOOL)sendTypingBaseCondation {
+    if (self.sendTypingBaseCondationInVC) {
+        return YES;
+    }
+
+    if ([self.messageController isKindOfClass:TUIMessageController.class]) {
+        TUIMessageController *vc = (TUIMessageController *)self.messageController;
+        NSDictionary *messageFeatureDic = (id)[vc.C2CIncomingLastMsg parseCloudCustomData:messageFeature];
+
+        if (messageFeatureDic && [messageFeatureDic isKindOfClass:[NSDictionary class]] && [messageFeatureDic.allKeys containsObject:@"needTyping"] &&
+            [messageFeatureDic.allKeys containsObject:@"version"]) {
+            BOOL needTyping = NO;
+
+            BOOL versionControl = NO;
+
+            BOOL timeControl = NO;
+
+            if ([messageFeatureDic[@"needTyping"] intValue] == 1) {
+                needTyping = YES;
+            }
+
+            if ([messageFeatureDic[@"version"] intValue] == 1) {
+                versionControl = YES;
+            }
+
+            CFTimeInterval current = [NSDate.new timeIntervalSince1970];
+            long currentTimeFloor = floor(current);
+            long otherSideTimeFloor = floor([vc.C2CIncomingLastMsg.timestamp timeIntervalSince1970]);
+            long interval = currentTimeFloor - otherSideTimeFloor;
+            if (interval <= kC2CTypingTime) {
+                timeControl = YES;
+            }
+
+            if (needTyping && versionControl && timeControl) {
+                self.sendTypingBaseCondationInVC = YES;
+                return YES;
+            }
+        }
+    }
+    return NO;
+}
+- (void)sendTypingMsgByStatus:(BOOL)editing {
+    // switch control
+    if (![TUIChatConfig defaultConfig].enableTypingStatus) {
+        return;
+    }
+
+    if (![self sendTypingBaseCondation]) {
+        return;
+    }
+
+    NSError *error = nil;
+    NSDictionary *param = @{
+        BussinessID : BussinessID_Typing,
+        @"typingStatus" : editing ? @1 : @0,
+        @"version" : @1,
+        @"userAction" : @14,
+        @"actionParam" : editing ? @"EIMAMSG_InputStatus_Ing" : @"EIMAMSG_InputStatus_End",
+    };
+    NSData *data = [NSJSONSerialization dataWithJSONObject:param options:0 error:&error];
+
+    V2TIMMessage *msg = [TUIMessageDataProvider getCustomMessageWithJsonData:data];
+    TUISendMessageAppendParams *appendParams = [[TUISendMessageAppendParams alloc] init];
+    appendParams.isSendPushInfo = NO;
+    appendParams.isOnlineUserOnly = YES;
+    appendParams.priority = V2TIM_PRIORITY_DEFAULT;
+
+    [TUIMessageDataProvider sendMessage:msg
+        toConversation:self.conversationData
+        appendParams:appendParams
+        Progress:^(uint32_t progress) {
+
+        }
+        SuccBlock:^{
+          NSLog(@"success");
+        }
+        FailBlock:^(int code, NSString *desc) {
+          NSLog(@"Fail");
+        }];
 }
 
 /*

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/TXCustom/KSTXGroupChatViewController.m

@@ -489,7 +489,7 @@
     if (!atUserExist) {
         TUIUserModel *user = [[TUIUserModel alloc] init];
         user.userId = cell.messageData.identifier;
-        user.name = cell.messageData.name;
+        user.name = cell.messageData.senderName;
         [self.atUserList addObject:user];
         
         NSString *nameString = [NSString stringWithFormat:@"@%@ ", user.name];

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/View/GroupSettingBodyView.xib

@@ -303,7 +303,7 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="K7k-ff-Bs3">
-                            <rect key="frame" x="16" y="54" width="398" height="1"/>
+                            <rect key="frame" x="16" y="0.0" width="398" height="1"/>
                             <color key="backgroundColor" red="0.94117647059999998" green="0.94117647059999998" blue="0.94117647059999998" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="1" id="CiA-Yu-WAS"/>
@@ -314,13 +314,13 @@
                     <gestureRecognizers/>
                     <constraints>
                         <constraint firstAttribute="trailing" secondItem="K7k-ff-Bs3" secondAttribute="trailing" id="7K2-hG-pph"/>
+                        <constraint firstItem="K7k-ff-Bs3" firstAttribute="top" secondItem="0hZ-Dj-wqy" secondAttribute="top" id="7nO-qn-t45"/>
                         <constraint firstItem="wGu-Ji-Izg" firstAttribute="leading" secondItem="0hZ-Dj-wqy" secondAttribute="leading" constant="13" id="FXk-Ra-yOH"/>
                         <constraint firstItem="wGu-Ji-Izg" firstAttribute="centerY" secondItem="0hZ-Dj-wqy" secondAttribute="centerY" id="Ncj-TG-giW"/>
                         <constraint firstAttribute="height" constant="55" id="OJA-EE-coh"/>
                         <constraint firstItem="jgL-fA-2h0" firstAttribute="centerY" secondItem="0hZ-Dj-wqy" secondAttribute="centerY" id="QO5-DD-RdR"/>
                         <constraint firstAttribute="trailing" secondItem="jgL-fA-2h0" secondAttribute="trailing" constant="10" id="b39-Pk-DXM"/>
                         <constraint firstItem="K7k-ff-Bs3" firstAttribute="leading" secondItem="0hZ-Dj-wqy" secondAttribute="leading" constant="16" id="bXz-DV-Cag"/>
-                        <constraint firstAttribute="bottom" secondItem="K7k-ff-Bs3" secondAttribute="bottom" id="uhf-3G-fgK"/>
                     </constraints>
                     <connections>
                         <outletCollection property="gestureRecognizers" destination="bpJ-RX-zB4" appends="YES" id="dVS-cS-Bxl"/>

+ 3 - 3
KulexiuForStudent/Podfile

@@ -11,12 +11,12 @@ target 'KulexiuForStudent' do
 # 忽略引入库的所有警告(强迫症者的福音啊)
  inhibit_all_warnings!
 
-  pod 'MJExtension', '~> 3.3.0'
+  pod 'MJExtension', '~> 3.4.1'
   pod 'AFNetworking', '~> 4.0'
   pod 'Masonry', '~> 1.1.0'
   pod 'MBProgressHUD', '~> 1.2.0'
-  pod 'SDWebImage', '~> 5.16.0'
-  pod 'MJRefresh', '~> 3.1.12'
+  pod 'SDWebImage', '~> 5.18.11'
+  pod 'MJRefresh', '~> 3.7.5'
   pod 'IQKeyboardManager'
   pod 'Reachability', '~> 3.2'
   pod 'JCore', '2.7.1-noidfa'

+ 141 - 145
KulexiuForStudent/Podfile.lock

@@ -50,8 +50,8 @@ PODS:
   - lottie-ios (2.5.3)
   - Masonry (1.1.0)
   - MBProgressHUD (1.2.0)
-  - MJExtension (3.3.0)
-  - MJRefresh (3.1.17)
+  - MJExtension (3.4.2)
+  - MJRefresh (3.7.9)
   - NTLBridge (3.1.5)
   - QCloudCore/WithoutMTA (6.2.8)
   - QCloudCOSXML/Transfer (6.2.8):
@@ -59,191 +59,187 @@ PODS:
   - Reachability (3.2)
   - ReactiveObjC (3.1.1)
   - RSKImageCropper (4.0.0)
-  - SDWebImage (5.16.0):
-    - SDWebImage/Core (= 5.16.0)
-  - SDWebImage/Core (5.16.0)
+  - SDWebImage (5.18.12):
+    - SDWebImage/Core (= 5.18.12)
+  - SDWebImage/Core (5.18.12)
   - SocketRocket (0.7.0)
   - SSZipArchive (2.4.3)
-  - TIMCommon (7.4.4643):
-    - TIMCommon/BaseCell (= 7.4.4643)
-    - TIMCommon/BaseCellData (= 7.4.4643)
-    - TIMCommon/CommonModel (= 7.4.4643)
-    - TIMCommon/UI_Classic (= 7.4.4643)
-    - TIMCommon/UI_Minimalist (= 7.4.4643)
-  - TIMCommon/BaseCell (7.4.4643):
+  - TIMCommon (8.1.6116):
+    - TIMCommon/BaseCell (= 8.1.6116)
+    - TIMCommon/BaseCellData (= 8.1.6116)
+    - TIMCommon/CommonModel (= 8.1.6116)
+    - TIMCommon/UI_Classic (= 8.1.6116)
+    - TIMCommon/UI_Minimalist (= 8.1.6116)
+  - TIMCommon/BaseCell (8.1.6116):
     - TIMCommon/BaseCellData
-  - TIMCommon/BaseCellData (7.4.4643):
+  - TIMCommon/BaseCellData (8.1.6116):
     - TIMCommon/CommonModel
-  - TIMCommon/CommonModel (7.4.4643):
+  - TIMCommon/CommonModel (8.1.6116):
+    - Masonry
     - ReactiveObjC
     - SDWebImage
-    - TUICore (= 7.4.4643)
-    - TXIMSDK_Plus_iOS (= 7.4.4643)
-  - TIMCommon/UI_Classic (7.4.4643):
+    - TUICore
+    - TXIMSDK_Plus_iOS_XCFramework
+  - TIMCommon/UI_Classic (8.1.6116):
     - TIMCommon/BaseCell
-  - TIMCommon/UI_Minimalist (7.4.4643):
+  - TIMCommon/UI_Minimalist (8.1.6116):
     - TIMCommon/BaseCell
-  - TUIChat/BaseCell (7.4.4643):
+  - TUIChat/BaseCell (8.1.6116):
     - TUIChat/BaseCellData
-  - TUIChat/BaseCellData (7.4.4643):
-    - TUIChat/BaseCellData/Base (= 7.4.4643)
-    - TUIChat/BaseCellData/Chat (= 7.4.4643)
-    - TUIChat/BaseCellData/Custom (= 7.4.4643)
-    - TUIChat/BaseCellData/Emoji (= 7.4.4643)
-    - TUIChat/BaseCellData/Reply (= 7.4.4643)
-  - TUIChat/BaseCellData/Base (7.4.4643):
+  - TUIChat/BaseCellData (8.1.6116):
+    - TUIChat/BaseCellData/Base (= 8.1.6116)
+    - TUIChat/BaseCellData/Chat (= 8.1.6116)
+    - TUIChat/BaseCellData/Custom (= 8.1.6116)
+    - TUIChat/BaseCellData/Reply (= 8.1.6116)
+  - TUIChat/BaseCellData/Base (8.1.6116):
     - TUIChat/CommonModel
-  - TUIChat/BaseCellData/Chat (7.4.4643):
+  - TUIChat/BaseCellData/Chat (8.1.6116):
     - TUIChat/BaseCellData/Base
-  - TUIChat/BaseCellData/Custom (7.4.4643):
+  - TUIChat/BaseCellData/Custom (8.1.6116):
     - TUIChat/BaseCellData/Chat
-  - TUIChat/BaseCellData/Emoji (7.4.4643):
+  - TUIChat/BaseCellData/Reply (8.1.6116):
     - TUIChat/BaseCellData/Custom
-  - TUIChat/BaseCellData/Reply (7.4.4643):
-    - TUIChat/BaseCellData/Custom
-  - TUIChat/BaseDataProvider (7.4.4643):
-    - TUIChat/BaseDataProvider/Base (= 7.4.4643)
-    - TUIChat/BaseDataProvider/Impl (= 7.4.4643)
-  - TUIChat/BaseDataProvider/Base (7.4.4643):
+  - TUIChat/BaseDataProvider (8.1.6116):
+    - TUIChat/BaseDataProvider/Base (= 8.1.6116)
+    - TUIChat/BaseDataProvider/Impl (= 8.1.6116)
+  - TUIChat/BaseDataProvider/Base (8.1.6116):
     - TUIChat/BaseCellData
-  - TUIChat/BaseDataProvider/Impl (7.4.4643):
+  - TUIChat/BaseDataProvider/Impl (8.1.6116):
     - TUIChat/BaseCellData
     - TUIChat/BaseDataProvider/Base
-  - TUIChat/CommonModel (7.4.4643):
+  - TUIChat/CommonModel (8.1.6116):
+    - Masonry
     - ReactiveObjC
     - SDWebImage
-    - TIMCommon (= 7.4.4643)
-    - TUIChat/VoiceConvert
-    - TUICore (= 7.4.4643)
-    - TXIMSDK_Plus_iOS (= 7.4.4643)
-  - TUIChat/CommonUI (7.4.4643):
-    - TUIChat/CommonUI/Camera (= 7.4.4643)
-    - TUIChat/CommonUI/Pendency (= 7.4.4643)
-    - TUIChat/CommonUI/Pop (= 7.4.4643)
-  - TUIChat/CommonUI/Camera (7.4.4643):
+    - TIMCommon (~> 8.1.6116)
+    - TUICore
+    - TXIMSDK_Plus_iOS_XCFramework
+  - TUIChat/CommonUI (8.1.6116):
+    - TUIChat/CommonUI/Camera (= 8.1.6116)
+    - TUIChat/CommonUI/Pendency (= 8.1.6116)
+    - TUIChat/CommonUI/Pop (= 8.1.6116)
+  - TUIChat/CommonUI/Camera (8.1.6116):
     - TUIChat/BaseCell
     - TUIChat/BaseDataProvider
-  - TUIChat/CommonUI/Pendency (7.4.4643):
+  - TUIChat/CommonUI/Pendency (8.1.6116):
     - TUIChat/BaseCell
     - TUIChat/BaseDataProvider
-  - TUIChat/CommonUI/Pop (7.4.4643):
+  - TUIChat/CommonUI/Pop (8.1.6116):
     - TUIChat/BaseCell
     - TUIChat/BaseDataProvider
-  - TUIChat/UI_Classic (7.4.4643):
-    - TUIChat/UI_Classic/Cell (= 7.4.4643)
-    - TUIChat/UI_Classic/Chat (= 7.4.4643)
-    - TUIChat/UI_Classic/Header (= 7.4.4643)
-    - TUIChat/UI_Classic/Input (= 7.4.4643)
-    - TUIChat/UI_Classic/Service (= 7.4.4643)
-  - TUIChat/UI_Classic/Cell (7.4.4643):
-    - TUIChat/UI_Classic/Cell/Base (= 7.4.4643)
-    - TUIChat/UI_Classic/Cell/Chat (= 7.4.4643)
-    - TUIChat/UI_Classic/Cell/Custom (= 7.4.4643)
-    - TUIChat/UI_Classic/Cell/Reply (= 7.4.4643)
-  - TUIChat/UI_Classic/Cell/Base (7.4.4643):
+  - TUIChat/UI_Classic (8.1.6116):
+    - TUIChat/UI_Classic/Cell (= 8.1.6116)
+    - TUIChat/UI_Classic/Chat (= 8.1.6116)
+    - TUIChat/UI_Classic/Header (= 8.1.6116)
+    - TUIChat/UI_Classic/Input (= 8.1.6116)
+    - TUIChat/UI_Classic/Service (= 8.1.6116)
+  - TUIChat/UI_Classic/Cell (8.1.6116):
+    - TUIChat/UI_Classic/Cell/Base (= 8.1.6116)
+    - TUIChat/UI_Classic/Cell/Chat (= 8.1.6116)
+    - TUIChat/UI_Classic/Cell/Custom (= 8.1.6116)
+    - TUIChat/UI_Classic/Cell/Reply (= 8.1.6116)
+  - TUIChat/UI_Classic/Cell/Base (8.1.6116):
     - TUIChat/CommonUI
-  - TUIChat/UI_Classic/Cell/Chat (7.4.4643):
+  - TUIChat/UI_Classic/Cell/Chat (8.1.6116):
     - TUIChat/UI_Classic/Cell/Base
-  - TUIChat/UI_Classic/Cell/Custom (7.4.4643):
+  - TUIChat/UI_Classic/Cell/Custom (8.1.6116):
     - TUIChat/UI_Classic/Cell/Chat
-  - TUIChat/UI_Classic/Cell/Reply (7.4.4643):
+  - TUIChat/UI_Classic/Cell/Reply (8.1.6116):
     - TUIChat/UI_Classic/Cell/Custom
-  - TUIChat/UI_Classic/Chat (7.4.4643):
+  - TUIChat/UI_Classic/Chat (8.1.6116):
     - TUIChat/UI_Classic/Input
-  - TUIChat/UI_Classic/Header (7.4.4643):
+  - TUIChat/UI_Classic/Header (8.1.6116):
     - TUIChat/UI_Classic/Service
-  - TUIChat/UI_Classic/Input (7.4.4643):
+  - TUIChat/UI_Classic/Input (8.1.6116):
     - TUIChat/UI_Classic/Cell
-  - TUIChat/UI_Classic/Service (7.4.4643):
+  - TUIChat/UI_Classic/Service (8.1.6116):
     - TUIChat/UI_Classic/Chat
-  - TUIChat/VoiceConvert (7.4.4643)
-  - TUIConversation/BaseCell (7.4.4643):
-    - TUIConversation/BaseCell/CellData (= 7.4.4643)
-    - TUIConversation/BaseCell/CellUI (= 7.4.4643)
-  - TUIConversation/BaseCell/CellData (7.4.4643):
+  - TUIConversation/BaseCell (8.1.6116):
+    - TUIConversation/BaseCell/CellData (= 8.1.6116)
+    - TUIConversation/BaseCell/CellUI (= 8.1.6116)
+  - TUIConversation/BaseCell/CellData (8.1.6116):
     - TUIConversation/CommonModel
-  - TUIConversation/BaseCell/CellUI (7.4.4643):
+  - TUIConversation/BaseCell/CellUI (8.1.6116):
     - TUIConversation/BaseCell/CellData
-  - TUIConversation/BaseDataProvider (7.4.4643):
+  - TUIConversation/BaseDataProvider (8.1.6116):
     - TUIConversation/BaseCell
-  - TUIConversation/CommonModel (7.4.4643):
+  - TUIConversation/CommonModel (8.1.6116):
+    - Masonry
     - ReactiveObjC
-    - TIMCommon (= 7.4.4643)
-    - TUICore (= 7.4.4643)
-    - TXIMSDK_Plus_iOS (= 7.4.4643)
-  - TUIConversation/UI_Classic (7.4.4643):
-    - TUIConversation/UI_Classic/DataProvider (= 7.4.4643)
-    - TUIConversation/UI_Classic/Header (= 7.4.4643)
-    - TUIConversation/UI_Classic/Service (= 7.4.4643)
-    - TUIConversation/UI_Classic/UI (= 7.4.4643)
-  - TUIConversation/UI_Classic/DataProvider (7.4.4643):
+    - TIMCommon (~> 8.1.6116)
+    - TUICore
+    - TXIMSDK_Plus_iOS_XCFramework
+  - TUIConversation/UI_Classic (8.1.6116):
+    - TUIConversation/UI_Classic/DataProvider (= 8.1.6116)
+    - TUIConversation/UI_Classic/Header (= 8.1.6116)
+    - TUIConversation/UI_Classic/Service (= 8.1.6116)
+    - TUIConversation/UI_Classic/UI (= 8.1.6116)
+  - TUIConversation/UI_Classic/DataProvider (8.1.6116):
     - TUIConversation/BaseDataProvider
-  - TUIConversation/UI_Classic/Header (7.4.4643):
+  - TUIConversation/UI_Classic/Header (8.1.6116):
     - TUIConversation/UI_Classic/Service
-  - TUIConversation/UI_Classic/Service (7.4.4643):
+  - TUIConversation/UI_Classic/Service (8.1.6116):
     - TUIConversation/UI_Classic/UI
-  - TUIConversation/UI_Classic/UI (7.4.4643):
+  - TUIConversation/UI_Classic/UI (8.1.6116):
     - TUIConversation/UI_Classic/DataProvider
-  - TUICore (7.4.4643):
-    - ReactiveObjC
+  - TUICore (8.1.6116):
     - SDWebImage
-    - TUICore/ImSDK_Plus (= 7.4.4643)
-  - TUICore/Base (7.4.4643):
-    - ReactiveObjC
+    - TUICore/ImSDK_Plus (= 8.1.6116)
+  - TUICore/Base (8.1.6116):
     - SDWebImage
-  - TUICore/ImSDK_Plus (7.4.4643):
-    - ReactiveObjC
+  - TUICore/ImSDK_Plus (8.1.6116):
     - SDWebImage
     - TUICore/Base
-    - TXIMSDK_Plus_iOS (= 7.4.4643)
-  - TUIGroup/BaseCell (7.4.4643):
-    - TUIGroup/BaseCell/CellData (= 7.4.4643)
-    - TUIGroup/BaseCell/CellUI (= 7.4.4643)
-  - TUIGroup/BaseCell/CellData (7.4.4643):
+    - TXIMSDK_Plus_iOS_XCFramework
+  - TUIGroup/BaseCell (8.1.6116):
+    - TUIGroup/BaseCell/CellData (= 8.1.6116)
+    - TUIGroup/BaseCell/CellUI (= 8.1.6116)
+  - TUIGroup/BaseCell/CellData (8.1.6116):
     - TUIGroup/CommonModel
-  - TUIGroup/BaseCell/CellUI (7.4.4643):
+  - TUIGroup/BaseCell/CellUI (8.1.6116):
     - TUIGroup/BaseCell/CellData
-  - TUIGroup/BaseDataProvider (7.4.4643):
+  - TUIGroup/BaseDataProvider (8.1.6116):
     - TUIGroup/BaseCell
-  - TUIGroup/CommonModel (7.4.4643):
+  - TUIGroup/CommonModel (8.1.6116):
+    - Masonry
     - ReactiveObjC
-    - TIMCommon (= 7.4.4643)
-    - TUICore (= 7.4.4643)
-    - TXIMSDK_Plus_iOS (= 7.4.4643)
-  - TUIGroup/CommonUI (7.4.4643):
+    - TIMCommon (~> 8.1.6116)
+    - TUICore
+    - TXIMSDK_Plus_iOS_XCFramework
+  - TUIGroup/CommonUI (8.1.6116):
     - TUIGroup/BaseDataProvider
-  - TUIGroup/UI_Classic (7.4.4643):
-    - TUIGroup/UI_Classic/Header (= 7.4.4643)
-    - TUIGroup/UI_Classic/Service (= 7.4.4643)
-    - TUIGroup/UI_Classic/UI (= 7.4.4643)
-  - TUIGroup/UI_Classic/Header (7.4.4643):
+  - TUIGroup/UI_Classic (8.1.6116):
+    - TUIGroup/UI_Classic/Header (= 8.1.6116)
+    - TUIGroup/UI_Classic/Service (= 8.1.6116)
+    - TUIGroup/UI_Classic/UI (= 8.1.6116)
+  - TUIGroup/UI_Classic/Header (8.1.6116):
     - TUIGroup/UI_Classic/Service
-  - TUIGroup/UI_Classic/Service (7.4.4643):
+  - TUIGroup/UI_Classic/Service (8.1.6116):
     - TUIGroup/UI_Classic/UI
-  - TUIGroup/UI_Classic/UI (7.4.4643):
+  - TUIGroup/UI_Classic/UI (8.1.6116):
     - TUIGroup/CommonUI
-  - TUISearch/BaseCell (7.4.4643):
-    - TUISearch/BaseCell/CellData (= 7.4.4643)
-    - TUISearch/BaseCell/CellUI (= 7.4.4643)
-  - TUISearch/BaseCell/CellData (7.4.4643):
-    - TIMCommon (= 7.4.4643)
-    - TUICore (= 7.4.4643)
-    - TXIMSDK_Plus_iOS (= 7.4.4643)
-  - TUISearch/BaseCell/CellUI (7.4.4643):
+  - TUISearch/BaseCell (8.1.6116):
+    - TUISearch/BaseCell/CellData (= 8.1.6116)
+    - TUISearch/BaseCell/CellUI (= 8.1.6116)
+  - TUISearch/BaseCell/CellData (8.1.6116):
+    - TIMCommon (~> 8.1.6116)
+    - TUICore
+    - TXIMSDK_Plus_iOS_XCFramework
+  - TUISearch/BaseCell/CellUI (8.1.6116):
     - TUISearch/BaseCell/CellData
-  - TUISearch/BaseDataProvider (7.4.4643):
+  - TUISearch/BaseDataProvider (8.1.6116):
     - TUISearch/BaseCell
-  - TUISearch/UI_Classic (7.4.4643):
-    - TUISearch/UI_Classic/Header (= 7.4.4643)
-    - TUISearch/UI_Classic/Service (= 7.4.4643)
-    - TUISearch/UI_Classic/UI (= 7.4.4643)
-  - TUISearch/UI_Classic/Header (7.4.4643):
+  - TUISearch/UI_Classic (8.1.6116):
+    - TUISearch/UI_Classic/Header (= 8.1.6116)
+    - TUISearch/UI_Classic/Service (= 8.1.6116)
+    - TUISearch/UI_Classic/UI (= 8.1.6116)
+  - TUISearch/UI_Classic/Header (8.1.6116):
     - TUISearch/UI_Classic/Service
-  - TUISearch/UI_Classic/Service (7.4.4643):
+  - TUISearch/UI_Classic/Service (8.1.6116):
     - TUISearch/UI_Classic/UI
-  - TUISearch/UI_Classic/UI (7.4.4643):
+  - TUISearch/UI_Classic/UI (8.1.6116):
     - TUISearch/BaseDataProvider
-  - TXIMSDK_Plus_iOS (7.4.4643)
+  - TXIMSDK_Plus_iOS_XCFramework (8.1.6905)
   - TXLiteAVSDK_Professional (11.7.15304):
     - TXLiteAVSDK_Professional/Professional (= 11.7.15304)
   - TXLiteAVSDK_Professional/Professional (11.7.15304)
@@ -293,12 +289,12 @@ DEPENDENCIES:
   - lottie-ios (~> 2.5)
   - Masonry (~> 1.1.0)
   - MBProgressHUD (~> 1.2.0)
-  - MJExtension (~> 3.3.0)
-  - MJRefresh (~> 3.1.12)
+  - MJExtension (~> 3.4.1)
+  - MJRefresh (~> 3.7.5)
   - QCloudCOSXML/Transfer
   - Reachability (~> 3.2)
   - RSKImageCropper
-  - SDWebImage (~> 5.16.0)
+  - SDWebImage (~> 5.18.11)
   - SocketRocket
   - SSZipArchive
   - TUIChat/UI_Classic
@@ -345,7 +341,7 @@ SPEC REPOS:
     - TUICore
     - TUIGroup
     - TUISearch
-    - TXIMSDK_Plus_iOS
+    - TXIMSDK_Plus_iOS_XCFramework
     - TXLiteAVSDK_Professional
     - TYCyclePagerView
     - TZImagePickerController
@@ -369,30 +365,30 @@ SPEC CHECKSUMS:
   lottie-ios: a50d5c0160425cd4b01b852bb9578963e6d92d31
   Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
   MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
-  MJExtension: 01704cca2b60a214c10761b6491eab74069d68a9
-  MJRefresh: ee5b68f639775462faba4db0fd243baf4d42c2cf
+  MJExtension: e97d164cb411aa9795cf576093a1fa208b4a8dd8
+  MJRefresh: ff9e531227924c84ce459338414550a05d2aea78
   NTLBridge: e94dc18242476b0238c10213a5438d9b9a59fcce
   QCloudCore: 7d480d45acc287a10caf1bb5b11f32e9fb2bb8b2
   QCloudCOSXML: d7c1f08486ae540ef7a07153528946321e44993b
   Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
   ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
   RSKImageCropper: 90dfe482402fb8a40cabd5fea65186d9102cc425
-  SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6
+  SDWebImage: 2d6d229046fea284d62e36bfb8ebe8287dfc5b10
   SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
   SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
-  TIMCommon: 944f70d62dda70a2e048b125770efb32eae4bc3b
-  TUIChat: 92e4ea0472dad566da6e6c88a4676b3dfb9482da
-  TUIConversation: 9c79518b59fd7e213bd817d1dbbc179a6dc1bda1
-  TUICore: 5b6f4409de9af3bc18f08735808c907f18db0a6c
-  TUIGroup: 9b53d271c5556616058ef979762fccc621e7ff5e
-  TUISearch: 8f84a6a62b6fd97ae32a89a1d241593acb433d98
-  TXIMSDK_Plus_iOS: 4fe66054d3bc6953f21562c5b2bcce5526ba589f
+  TIMCommon: 910eee49ea7ad99a81c416888fe2db1efcc09a2e
+  TUIChat: 9d7ac7483d54314c5d3dec5f333a4060b1de010b
+  TUIConversation: 678cf6af792542cd24a21ba4d15c52eac69a34ba
+  TUICore: 23f2d58027b594b137d3a4e6242d9a0651620271
+  TUIGroup: fffb617fba5121e90f8fdb5e897df977007ddbb1
+  TUISearch: 9e3e521a6edd5580586dad316911ab689835d774
+  TXIMSDK_Plus_iOS_XCFramework: 545d980cbe116c5a60d2ef60f19e1b9097d58e61
   TXLiteAVSDK_Professional: 60add29dbe52bed7d828f1d68d88487d9f16e9d1
   TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
   TZImagePickerController: f1c9f1cae6ac0e30b31aaa9698f9bf4a7cf5b84f
   Whiteboard: 9d5a68d3738bd0ba8cd98820c506d13108976696
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: cedb9502ced3d1195ca6fd8fa48e5b6cb6de2f1a
+PODFILE CHECKSUM: 439fa3c8873f65ea1e85e077daf411b3a889635b
 
 COCOAPODS: 1.15.2

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/MJRefresh/MJRefreshNormalTrailer.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/MJRefresh/MJRefreshStateTrailer.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/MJRefresh/MJRefreshTrailer.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/Base/MJRefreshTrailer.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/MJRefresh/UICollectionViewLayout+MJRefresh.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/SDWebImage/UIView+WebCacheState.h

@@ -0,0 +1 @@
+../../../SDWebImage/SDWebImage/Core/UIView+WebCacheState.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TIMCommonMediator.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/CommonModel/TIMCommonMediator.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TIMRTLUtil.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/CommonModel/TIMRTLUtil.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUIEmojiMeditorProtocol.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/CommonModel/TUIEmojiMeditorProtocol.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUIRelationUserModel.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/BaseCellData/TUIRelationUserModel.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUISecurityStrikeView.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/BaseCell/TUISecurityStrikeView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUITagsCell.h

@@ -1 +0,0 @@
-../../../TIMCommon/TIMCommon/BaseCell/TUITagsCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUITagsModel.h

@@ -1 +0,0 @@
-../../../TIMCommon/TIMCommon/BaseCellData/TUITagsModel.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TIMCommon/TUITagsView.h

@@ -1 +0,0 @@
-../../../TIMCommon/TIMCommon/BaseCell/TUITagsView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/EMVoiceConverter.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/EMVoiceConverter.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatContextEmojiDetailController.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/CommonUI/Pop/TUIChatContextEmojiDetailController.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopContextExtionView.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonUI/Pop/TUIChatPopContextExtionView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopContextRecentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/CommonUI/Pop/TUIChatPopContextRecentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopEmojiView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCell/TUIChatPopEmojiView.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopMenuDefine.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/BaseCell/TUIChatPopMenuDefine.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIChatPopRecentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCell/TUIChatPopRecentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiCell.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCell/TUIEmojiCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiCellData.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCellData/Emoji/TUIEmojiCellData.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiConfig.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonModel/TUIEmojiConfig.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIEmojiMeditorProtocolProvider.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonModel/TUIEmojiMeditorProtocolProvider.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIFaceSegementScrollView.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/BaseCell/TUIFaceSegementScrollView.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIFaceVerticalView.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/BaseCell/TUIFaceVerticalView.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIGroupPinCell.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonUI/Pendency/TUIGroupPinCell.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUIChat/TUIGroupPinPageViewController.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonUI/Pendency/TUIGroupPinPageViewController.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TXChatMusicMessage.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCellData/Custom/TXChatMusicMessage.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TXChatMusicShareCell.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXChatMusicShareCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TXLiveShareCell.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXLiveShareCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TXLiveShareMessage.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCellData/Custom/TXLiveShareMessage.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TXShareLiveCellContentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXShareLiveCellContentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/TXShareMusicCellContentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXShareMusicCellContentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/amrFileCodec.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/amrFileCodec.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/dec_if.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/dec_if.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/if_rom.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/if_rom.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/interf_dec.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/interf_dec.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIChat/interf_enc.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/interf_enc.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUICore/OfflinePushExtBusinessInfo.h

@@ -0,0 +1 @@
+../../../TUICore/TUICore/OfflinePushExtBusinessInfo.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUICore/OfflinePushExtConfigInfo.h

@@ -0,0 +1 @@
+../../../TUICore/TUICore/OfflinePushExtConfigInfo.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Private/TUICore/OfflinePushExtInfo.h

@@ -0,0 +1 @@
+../../../TUICore/TUICore/OfflinePushExtInfo.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIGroup/TUIAddCell.h

@@ -1 +0,0 @@
-../../../TUIGroup/TUIGroup/BaseCell/CellUI/TUIAddCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Private/TUIGroup/TUIAddCellData.h

@@ -1 +0,0 @@
-../../../TUIGroup/TUIGroup/BaseCell/CellData/TUIAddCellData.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/MJRefresh/MJRefreshNormalTrailer.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/MJRefresh/MJRefreshStateTrailer.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/MJRefresh/MJRefreshTrailer.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/Base/MJRefreshTrailer.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/MJRefresh/UICollectionViewLayout+MJRefresh.h

@@ -0,0 +1 @@
+../../../MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/SDWebImage/UIView+WebCacheState.h

@@ -0,0 +1 @@
+../../../SDWebImage/SDWebImage/Core/UIView+WebCacheState.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TIMCommonMediator.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/CommonModel/TIMCommonMediator.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TIMRTLUtil.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/CommonModel/TIMRTLUtil.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUIEmojiMeditorProtocol.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/CommonModel/TUIEmojiMeditorProtocol.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUIRelationUserModel.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/BaseCellData/TUIRelationUserModel.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUISecurityStrikeView.h

@@ -0,0 +1 @@
+../../../TIMCommon/TIMCommon/BaseCell/TUISecurityStrikeView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUITagsCell.h

@@ -1 +0,0 @@
-../../../TIMCommon/TIMCommon/BaseCell/TUITagsCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUITagsModel.h

@@ -1 +0,0 @@
-../../../TIMCommon/TIMCommon/BaseCellData/TUITagsModel.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TIMCommon/TUITagsView.h

@@ -1 +0,0 @@
-../../../TIMCommon/TIMCommon/BaseCell/TUITagsView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/EMVoiceConverter.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/EMVoiceConverter.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatContextEmojiDetailController.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/CommonUI/Pop/TUIChatContextEmojiDetailController.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopContextExtionView.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonUI/Pop/TUIChatPopContextExtionView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopContextRecentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/CommonUI/Pop/TUIChatPopContextRecentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopEmojiView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCell/TUIChatPopEmojiView.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopMenuDefine.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/BaseCell/TUIChatPopMenuDefine.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIChatPopRecentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCell/TUIChatPopRecentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiCell.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCell/TUIEmojiCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiCellData.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCellData/Emoji/TUIEmojiCellData.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiConfig.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonModel/TUIEmojiConfig.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIEmojiMeditorProtocolProvider.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonModel/TUIEmojiMeditorProtocolProvider.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIFaceSegementScrollView.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/BaseCell/TUIFaceSegementScrollView.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIFaceVerticalView.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/BaseCell/TUIFaceVerticalView.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIGroupPinCell.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonUI/Pendency/TUIGroupPinCell.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUIChat/TUIGroupPinPageViewController.h

@@ -0,0 +1 @@
+../../../TUIChat/TUIChat/CommonUI/Pendency/TUIGroupPinPageViewController.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TXChatMusicMessage.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCellData/Custom/TXChatMusicMessage.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TXChatMusicShareCell.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXChatMusicShareCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TXLiveShareCell.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXLiveShareCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TXLiveShareMessage.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/BaseCellData/Custom/TXLiveShareMessage.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TXShareLiveCellContentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXShareLiveCellContentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/TXShareMusicCellContentView.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/UI_Classic/Cell/Custom/TXShareMusicCellContentView.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/amrFileCodec.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/amrFileCodec.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/dec_if.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/dec_if.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/if_rom.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/if_rom.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/interf_dec.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/interf_dec.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIChat/interf_enc.h

@@ -1 +0,0 @@
-../../../TUIChat/TUIChat/VoiceConvert/interf_enc.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUICore/OfflinePushExtBusinessInfo.h

@@ -0,0 +1 @@
+../../../TUICore/TUICore/OfflinePushExtBusinessInfo.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUICore/OfflinePushExtConfigInfo.h

@@ -0,0 +1 @@
+../../../TUICore/TUICore/OfflinePushExtConfigInfo.h

+ 1 - 0
KulexiuForStudent/Pods/Headers/Public/TUICore/OfflinePushExtInfo.h

@@ -0,0 +1 @@
+../../../TUICore/TUICore/OfflinePushExtInfo.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIGroup/TUIAddCell.h

@@ -1 +0,0 @@
-../../../TUIGroup/TUIGroup/BaseCell/CellUI/TUIAddCell.h

+ 0 - 1
KulexiuForStudent/Pods/Headers/Public/TUIGroup/TUIAddCellData.h

@@ -1 +0,0 @@
-../../../TUIGroup/TUIGroup/BaseCell/CellData/TUIAddCellData.h

+ 13 - 2
KulexiuForStudent/Pods/MJExtension/MJExtension/NSObject+MJCoding.h

@@ -50,6 +50,17 @@ return self; \
 - (void)encodeWithCoder:(NSCoder *)encoder \
 { \
 [self mj_encode:encoder]; \
-}
+}\
+
+#define MJExtensionCodingImplementation MJCodingImplementation
+
+#define MJSecureCodingImplementation(CLASS, FLAG) \
+@interface CLASS (MJSecureCoding) <NSSecureCoding> \
+@end \
+@implementation CLASS (MJSecureCoding) \
+MJCodingImplementation \
++ (BOOL)supportsSecureCoding { \
+return FLAG; \
+} \
+@end \
 
-#define MJExtensionCodingImplementation MJCodingImplementation

+ 6 - 1
KulexiuForStudent/Pods/MJExtension/MJExtension/NSObject+MJCoding.m

@@ -43,7 +43,12 @@
         if (allowedCodingPropertyNames.count && ![allowedCodingPropertyNames containsObject:property.name]) return;
         if ([ignoredCodingPropertyNames containsObject:property.name]) return;
         
-        id value = [decoder decodeObjectForKey:property.name];
+        // fixed `-[NSKeyedUnarchiver validateAllowedClass:forKey:] allowed unarchiving safe plist type ''NSNumber'(This will be disallowed in the future.)` warning.
+        Class genericClass = [property objectClassInArrayForClass:property.srcClass];
+        // If genericClass exists, property.type.typeClass would be a collection type(Array, Set, Dictionary). This scenario([obj, nil, obj, nil]) would not happened.
+        NSSet *classes = [NSSet setWithObjects:NSNumber.class,
+                          property.type.typeClass, genericClass, nil];
+        id value = [decoder decodeObjectOfClasses:classes forKey:property.name];
         if (value == nil) { // 兼容以前的MJExtension版本
             value = [decoder decodeObjectForKey:[@"_" stringByAppendingString:property.name]];
         }

+ 1 - 1
KulexiuForStudent/Pods/MJExtension/MJExtension/NSObject+MJKeyValue.m

@@ -255,7 +255,7 @@ static const char MJReferenceReplacedKeyWhenCreatingKeyValuesKey = '\0';
     MJExtensionAssertError([keyValues isKindOfClass:[NSDictionary class]], nil, [self class], @"keyValues参数不是一个字典");
     
     if ([self isSubclassOfClass:[NSManagedObject class]] && context) {
-        NSString *entityName = [NSStringFromClass(self) componentsSeparatedByString:@"."].lastObject;
+        NSString *entityName = [(NSManagedObject *)self entity].name;
         return [[NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:context] mj_setKeyValues:keyValues context:context];
     }
     return [[[self alloc] init] mj_setKeyValues:keyValues];

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است