Steven 2 yıl önce
ebeveyn
işleme
7a1843e60a
17 değiştirilmiş dosya ile 576 ekleme ve 57 silme
  1. 24 0
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 58 26
      KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 4 0
      KulexiuForStudent/KulexiuForStudent/AppDelegate.h
  5. 126 25
      KulexiuForStudent/KulexiuForStudent/AppDelegate.m
  6. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_selected.imageset/tab_mall_selected@2x.png
  7. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_selected.imageset/tab_mall_selected@3x.png
  8. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_unselected.imageset/tab_mall_unselected@2x.png
  9. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_unselected.imageset/tab_mall_unselected@3x.png
  10. 0 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/Boat_Loader.json
  11. 40 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSCustomLoadingManager.h
  12. 210 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSCustomLoadingManager.m
  13. 24 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSLoadingSuccessView.h
  14. 88 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSLoadingSuccessView.m
  15. 0 4
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSRCIMDataSource.m
  16. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherShowCell.m
  17. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Login/Model/UserInfoManager.m

+ 24 - 0
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -473,6 +473,7 @@
 		BC60E3CE287D552800B05441 /* DeleteAccountBodyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC60E3CB287D552800B05441 /* DeleteAccountBodyView.xib */; };
 		BC60E3D2287D592800B05441 /* KSPublicAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC60E3CF287D592800B05441 /* KSPublicAlertView.xib */; };
 		BC60E3D3287D592800B05441 /* KSPublicAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC60E3D1287D592800B05441 /* KSPublicAlertView.m */; };
+		BC6744E32892795500BB8D03 /* Boat_Loader.json in Resources */ = {isa = PBXBuildFile; fileRef = BC6744E22892795500BB8D03 /* Boat_Loader.json */; };
 		BC71D0F32881A2420010F14B /* UMCommonLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC71D0C82881A2420010F14B /* UMCommonLog.framework */; };
 		BC71D0F42881A2420010F14B /* UMCommonLog.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BC71D0C92881A2420010F14B /* UMCommonLog.bundle */; };
 		BC71D0F52881A2420010F14B /* UMAPM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC71D0CC2881A2420010F14B /* UMAPM.framework */; };
@@ -630,6 +631,7 @@
 		BC8C2C612823F57100FBA5D5 /* MyAddressListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC8C2C562823F57100FBA5D5 /* MyAddressListCell.xib */; };
 		BC8C2C7E28265D8E00FBA5D5 /* KSNewsAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8C2C7C28265D8D00FBA5D5 /* KSNewsAlert.m */; };
 		BC8C2C7F28265D8E00FBA5D5 /* KSNewsAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC8C2C7D28265D8E00FBA5D5 /* KSNewsAlert.xib */; };
+		BC8EC02A28926D6E00D51094 /* KSCustomLoadingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8EC02928926D6E00D51094 /* KSCustomLoadingManager.m */; };
 		BCA193B8282B6094004A585D /* RecentCourseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCA193B7282B6094004A585D /* RecentCourseModel.m */; };
 		BCA353F12859BB2900377661 /* MusicRoomCourseCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCA353EF2859BB2700377661 /* MusicRoomCourseCell.xib */; };
 		BCA353F22859BB2900377661 /* MusicRoomCourseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCA353F02859BB2900377661 /* MusicRoomCourseCell.m */; };
@@ -788,6 +790,7 @@
 		BCD457AB286469600010B493 /* PublicNoticeView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD457A92864695F0010B493 /* PublicNoticeView.m */; };
 		BCD457AC286469600010B493 /* PublicNoticeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCD457AA286469600010B493 /* PublicNoticeView.xib */; };
 		BCD457AF28646B580010B493 /* NoticeSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD457AE28646B580010B493 /* NoticeSourceModel.m */; };
+		BCDE35862893B0E200A9A560 /* KSLoadingSuccessView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDE35852893B0E200A9A560 /* KSLoadingSuccessView.m */; };
 		BCEBB8E82840B87100A76BE8 /* KSLiveChatroomMemberUp.m in Sources */ = {isa = PBXBuildFile; fileRef = BCEBB8E72840B87100A76BE8 /* KSLiveChatroomMemberUp.m */; };
 		BCED5CA7284F55A0009A42DE /* FriendListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CA6284F55A0009A42DE /* FriendListModel.m */; };
 		BCFE53E72812765600AD6786 /* HomeHotAlbumCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFE53E52812765600AD6786 /* HomeHotAlbumCell.m */; };
@@ -1685,6 +1688,7 @@
 		BC60E3CF287D592800B05441 /* KSPublicAlertView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KSPublicAlertView.xib; sourceTree = "<group>"; };
 		BC60E3D0287D592800B05441 /* KSPublicAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSPublicAlertView.h; sourceTree = "<group>"; };
 		BC60E3D1287D592800B05441 /* KSPublicAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSPublicAlertView.m; sourceTree = "<group>"; };
+		BC6744E22892795500BB8D03 /* Boat_Loader.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Boat_Loader.json; sourceTree = "<group>"; };
 		BC71D0C82881A2420010F14B /* UMCommonLog.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMCommonLog.framework; sourceTree = "<group>"; };
 		BC71D0C92881A2420010F14B /* UMCommonLog.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = UMCommonLog.bundle; sourceTree = "<group>"; };
 		BC71D0CC2881A2420010F14B /* UMAPM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMAPM.framework; sourceTree = "<group>"; };
@@ -1897,6 +1901,8 @@
 		BC8C2C7B28265D8D00FBA5D5 /* KSNewsAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSNewsAlert.h; sourceTree = "<group>"; };
 		BC8C2C7C28265D8D00FBA5D5 /* KSNewsAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSNewsAlert.m; sourceTree = "<group>"; };
 		BC8C2C7D28265D8E00FBA5D5 /* KSNewsAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KSNewsAlert.xib; sourceTree = "<group>"; };
+		BC8EC02828926D6E00D51094 /* KSCustomLoadingManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSCustomLoadingManager.h; sourceTree = "<group>"; };
+		BC8EC02928926D6E00D51094 /* KSCustomLoadingManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSCustomLoadingManager.m; sourceTree = "<group>"; };
 		BCA193B6282B6094004A585D /* RecentCourseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecentCourseModel.h; sourceTree = "<group>"; };
 		BCA193B7282B6094004A585D /* RecentCourseModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecentCourseModel.m; sourceTree = "<group>"; };
 		BCA353EE2859BB2600377661 /* MusicRoomCourseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicRoomCourseCell.h; sourceTree = "<group>"; };
@@ -2192,6 +2198,8 @@
 		BCD457AA286469600010B493 /* PublicNoticeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PublicNoticeView.xib; sourceTree = "<group>"; };
 		BCD457AD28646B580010B493 /* NoticeSourceModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoticeSourceModel.h; sourceTree = "<group>"; };
 		BCD457AE28646B580010B493 /* NoticeSourceModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NoticeSourceModel.m; sourceTree = "<group>"; };
+		BCDE35842893B0E200A9A560 /* KSLoadingSuccessView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLoadingSuccessView.h; sourceTree = "<group>"; };
+		BCDE35852893B0E200A9A560 /* KSLoadingSuccessView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLoadingSuccessView.m; sourceTree = "<group>"; };
 		BCEBB8E62840B87100A76BE8 /* KSLiveChatroomMemberUp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomMemberUp.h; sourceTree = "<group>"; };
 		BCEBB8E72840B87100A76BE8 /* KSLiveChatroomMemberUp.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomMemberUp.m; sourceTree = "<group>"; };
 		BCED5CA5284F55A0009A42DE /* FriendListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FriendListModel.h; sourceTree = "<group>"; };
@@ -3628,6 +3636,7 @@
 		2779350B27E324A40010E277 /* Base */ = {
 			isa = PBXGroup;
 			children = (
+				BC8EC02428926B2C00D51094 /* CustomLoading */,
 				BC71D27C288807400010F14B /* TabbarAnimation */,
 				BC60E3D0287D592800B05441 /* KSPublicAlertView.h */,
 				BC60E3D1287D592800B05441 /* KSPublicAlertView.m */,
@@ -4671,6 +4680,18 @@
 			path = View;
 			sourceTree = "<group>";
 		};
+		BC8EC02428926B2C00D51094 /* CustomLoading */ = {
+			isa = PBXGroup;
+			children = (
+				BC8EC02828926D6E00D51094 /* KSCustomLoadingManager.h */,
+				BC8EC02928926D6E00D51094 /* KSCustomLoadingManager.m */,
+				BCDE35842893B0E200A9A560 /* KSLoadingSuccessView.h */,
+				BCDE35852893B0E200A9A560 /* KSLoadingSuccessView.m */,
+				BC6744E22892795500BB8D03 /* Boat_Loader.json */,
+			);
+			path = CustomLoading;
+			sourceTree = "<group>";
+		};
 		BCB6340A27F6D29500ACFDCF /* Live */ = {
 			isa = PBXGroup;
 			children = (
@@ -5600,6 +5621,7 @@
 				BC71D259288804CD0010F14B /* img_48.png in Resources */,
 				BCB6355927F6D2A300ACFDCF /* class_stop.mp3 in Resources */,
 				BC71D274288804CD0010F14B /* img_37.png in Resources */,
+				BC6744E32892795500BB8D03 /* Boat_Loader.json in Resources */,
 				BCFE53E82812765600AD6786 /* HomeHotAlbumCell.xib in Resources */,
 				BC40BA0428117B0A00DEC0D1 /* HomeBannerCell.xib in Resources */,
 				BC119239280ED98E00A716F7 /* AccompanyCourseCell.xib in Resources */,
@@ -6145,6 +6167,7 @@
 				2779359F27E324A80010E277 /* TZPhotoPreviewCell.m in Sources */,
 				BC11928D280FB44300A716F7 /* HomeworkVideoView.m in Sources */,
 				277935A227E324A80010E277 /* TZLocationManager.m in Sources */,
+				BCDE35862893B0E200A9A560 /* KSLoadingSuccessView.m in Sources */,
 				2723B62827F157D500E0B90B /* KSSelectConversationViewController.m in Sources */,
 				BC0A2265284471300065C1AB /* KSLiveBlockUser.m in Sources */,
 				275FA1E827E7351900CFEA2E /* CustomNavViewController.m in Sources */,
@@ -6306,6 +6329,7 @@
 				BC7663172827E49900C91A1D /* NotiferMessageCell.m in Sources */,
 				BC8A45A7283DC33400094BBB /* CloudControlButton.m in Sources */,
 				BC60E3D3287D592800B05441 /* KSPublicAlertView.m in Sources */,
+				BC8EC02A28926D6E00D51094 /* KSCustomLoadingManager.m in Sources */,
 				BCB6346527F6D29600ACFDCF /* KSLiveChatroomLike.m in Sources */,
 				BCB6356927F6D2A300ACFDCF /* TurnPageMessage.m in Sources */,
 				277935CA27E324A90010E277 /* TAAnimatedDotView.m in Sources */,

BIN
KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate


+ 58 - 26
KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -78,8 +78,8 @@
             filePath = "KulexiuForStudent/Module/Mine/MineCourse/View/MyLessonBodyView.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "191"
-            endingLineNumber = "191"
+            startingLineNumber = "195"
+            endingLineNumber = "195"
             landmarkName = "-requestData"
             landmarkType = "7">
          </BreakpointContent>
@@ -94,8 +94,8 @@
             filePath = "KulexiuForStudent/Module/Login/Controller/InstrumentChooseViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "206"
-            endingLineNumber = "206"
+            startingLineNumber = "208"
+            endingLineNumber = "208"
             landmarkName = "-countMessageWithModel:indexPath:"
             landmarkType = "7">
          </BreakpointContent>
@@ -158,8 +158,8 @@
             filePath = "KulexiuForStudent/Module/Course/Controller/CourseViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "506"
-            endingLineNumber = "506"
+            startingLineNumber = "510"
+            endingLineNumber = "510"
             landmarkName = "-chatAction:groupName:isGroup:"
             landmarkType = "7">
          </BreakpointContent>
@@ -174,8 +174,8 @@
             filePath = "KulexiuForStudent/Module/Course/Controller/CourseViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "492"
-            endingLineNumber = "492"
+            startingLineNumber = "496"
+            endingLineNumber = "496"
             landmarkName = "-liveCourseAction:source:"
             landmarkType = "7">
          </BreakpointContent>
@@ -190,8 +190,8 @@
             filePath = "KulexiuForStudent/Module/Course/Controller/CourseViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "489"
-            endingLineNumber = "489"
+            startingLineNumber = "493"
+            endingLineNumber = "493"
             landmarkName = "-liveCourseAction:source:"
             landmarkType = "7">
          </BreakpointContent>
@@ -263,22 +263,6 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "87C3E9BB-9148-4DFB-B910-E4C4D6FE36DD"
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KulexiuForStudent/AppDelegate.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "212"
-            endingLineNumber = "212"
-            landmarkName = "-configUM"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
             uuid = "F54016B4-70D8-4DD3-8942-BBE4466F239A"
             shouldBeEnabled = "No"
             ignoreCount = "0"
@@ -356,5 +340,53 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "8DB26C48-6635-4828-8D19-00B85EACBC87"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Home/Controller/HomeViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "377"
+            endingLineNumber = "377"
+            landmarkName = "-requestNotice"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "F28FC635-A864-490E-86E4-29EA85185C31"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Home/Controller/HomeViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "629"
+            endingLineNumber = "629"
+            landmarkName = "-requestTeacherStyle"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "2B1E56CA-1284-4CC0-83B7-59B5BCD8AB3F"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Common/Base/KSRCIMDataSource.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "115"
+            endingLineNumber = "115"
+            landmarkName = "-getUserInfoWithUserId:inGroup:completion:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 4 - 0
KulexiuForStudent/KulexiuForStudent/AppDelegate.h

@@ -22,6 +22,8 @@
 
 @property (nonatomic, assign) BOOL isShowFlashAlert; // 是否显示首页 news alert
 
+@property (nonatomic, strong) NSMutableDictionary *outLinkParm;
+
 - (void)showMemoAlert;
 
 - (void)initTableBar;
@@ -30,5 +32,7 @@
 
 - (void)initLoginView;
 
+- (void)handleNotiferSource;
+
 @end
 

+ 126 - 25
KulexiuForStudent/KulexiuForStudent/AppDelegate.m

@@ -63,10 +63,6 @@
 
 @property (nonatomic, assign) BOOL hasCheckTrackAuth;
 
-/// 推送的数据
-@property (nonatomic, strong) NSMutableDictionary *notiferParm;
-
-@property (nonatomic, strong) NSURL *outlinkUrl;
 
 @end
 
@@ -173,12 +169,6 @@
             [USER_MANAGER queryUserInfoConnectRongCloud:YES];
             [self initTableBar];
             self.window.rootViewController=_tabBarController;
-            if (self.notiferParm) {
-                [self getVCUserInfoDict:self.notiferParm];
-            }
-            else if (self.outlinkUrl) {
-                [self handleOutLink:self.outlinkUrl];
-            }
         }
     }
 }
@@ -576,14 +566,8 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
     }
     completionHandler();  // 系统要求执行这个方法
     NSMutableDictionary *infoDict = [NSMutableDictionary dictionaryWithDictionary:userInfo];
-    UIViewController *vc = self.window.rootViewController;
     
-    if ([vc isKindOfClass:[LaunchAnimationViewController class]]) {
-        self.notiferParm = [NSMutableDictionary dictionaryWithDictionary:infoDict];
-    }
-    else {
-        [self getVCUserInfoDict:infoDict];
-    }
+    [self getVCUserInfoDict:infoDict];
 }
 
 #pragma mark 根据不同消息跳转不同界面
@@ -593,6 +577,12 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
         NSError *error;
         NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
         if (!error) {
+            UIViewController *vc = self.window.rootViewController;
+            NSString *token = UserDefault(TokenKey);
+            if ([vc isKindOfClass:[LaunchAnimationViewController class]] || [NSString isEmptyString:token]) {
+                self.outLinkParm = [NSMutableDictionary dictionaryWithDictionary:dict];
+                return;
+            }
             NSString *action = [dict stringValueForKey:@"action"];
             if ([action isEqualToString:@"app"]) {
                 NSString *pageType = [dict stringValueForKey:@"pageTag"];
@@ -670,6 +660,10 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
             }
         }
     }
+    else {
+        // 跳转到第二个页面
+        [self.tabBarController tabBarSelectedWithIndex:2];
+    }
 }
 
 - (BOOL)isLowerVersionCompareLocalVersion:(NSString *)localVersion serviceVersion:(NSString *)version {
@@ -842,6 +836,12 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
                 return NO;
             }
             else {
+                UIViewController *vc = self.window.rootViewController;
+                NSString *token = UserDefault(TokenKey);
+                if ([vc isKindOfClass:[LaunchAnimationViewController class]] || [NSString isEmptyString:token]) {
+                    self.outLinkParm = [NSMutableDictionary dictionaryWithDictionary:dict];
+                    return NO;
+                }
                 NSString *action = [dict stringValueForKey:@"action"];
                 if ([action isEqualToString:@"app"]) {
                     NSString *pageType = [dict stringValueForKey:@"pageTag"];
@@ -885,14 +885,8 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
 
 #pragma mark ---- 处理外链
 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
-    UIViewController *vc = self.window.rootViewController;
-    if ([vc isKindOfClass:[LaunchAnimationViewController class]]) {
-        self.outlinkUrl = url;
-        return YES;
-    }
-    else {
-        return [self handleOutLink:url];
-    }
+    
+    return [self handleOutLink:url];
 }
 
 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
@@ -917,4 +911,111 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
     }
     return _alertView;
 }
+
+
+- (void)handleNotiferSource {
+    if (self.outLinkParm) {
+        NSDictionary *dict = [NSDictionary dictionaryWithDictionary:self.outLinkParm];
+        NSString *action = [dict stringValueForKey:@"action"];
+        if ([action isEqualToString:@"app"]) {
+            NSString *pageType = [dict stringValueForKey:@"pageTag"];
+            if ([pageType isEqualToString:@"practiceClass"]) { // 我的课程 ->陪练课
+                DISPLAY_INDEX index = DISPLAY_INDEX_FIRST;
+                MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
+                [ctrl displayWithIndex:index];
+                CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                [navCtrl pushViewController:ctrl animated:YES];
+            }
+            else if ([pageType isEqualToString:@"liveClass"]) { // 我的课程 ->直播课
+                DISPLAY_INDEX index = DISPLAY_INDEX_LIVE;
+                MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
+                [ctrl displayWithIndex:index];
+                CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                [navCtrl pushViewController:ctrl animated:YES];
+            }
+            else if ([pageType isEqualToString:@"videoClass"]) { // 我的课程 ->视频课
+                DISPLAY_INDEX index = DISPLAY_INDEX_VIEO;
+                MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
+                [ctrl displayWithIndex:index];
+                CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                [navCtrl pushViewController:ctrl animated:YES];
+            }
+            else if ([pageType isEqualToString:@"buyPractice"] || [pageType isEqualToString:@"courseRemind"]) { // 课表
+                [self.tabBarController tabBarSelectedWithIndex:1];
+                CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                [navCtrl popToRootViewControllerAnimated:YES];
+            }
+            else if ([pageType isEqualToString:@"homework"]) {
+                NSString *parmString = [dict stringValueForKey:@"params"];
+                NSData *parmData = [parmString mj_JSONData];
+                NSError *error;
+                NSDictionary *parm = [NSJSONSerialization JSONObjectWithData:parmData options:NSJSONReadingMutableContainers error:&error];
+                if (!error) {
+                    HomeworkDetailViewController *detailVC = [[HomeworkDetailViewController alloc] init];
+                    detailVC.courseId = [parm stringValueForKey:@"courseId"];
+                    CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                    [navCtrl pushViewController:detailVC animated:YES];
+                }
+            }
+            else if ([pageType isEqualToString:@"message"]) {
+                UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
+                if ([vc isKindOfClass:[UITabBarController class]]) {
+                    KSTabBarViewController *tabCtrl = (KSTabBarViewController *)vc;
+                    CustomNavViewController *navCtrl = (CustomNavViewController *)tabCtrl.selectedViewController;
+                    if ([navCtrl.visibleViewController isKindOfClass:NSClassFromString(@"NotiferMessageViewController")]) {
+                        NotiferMessageViewController *ctrl = (NotiferMessageViewController *)navCtrl.visibleViewController;
+                        [ctrl refreshView];
+                    }
+                    else {
+                        [self.tabBarController tabBarSelectedWithIndex:0];
+                        CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                        NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
+                        [navCtrl pushViewController:ctrl animated:YES];
+                    }
+                }
+                else {
+                    [self.tabBarController tabBarSelectedWithIndex:0];
+                    CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                    NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
+                    [navCtrl pushViewController:ctrl animated:YES];
+                }
+            }
+            else {  // 统一跳转消息列表
+                UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
+                if ([vc isKindOfClass:[UITabBarController class]]) {
+                    KSTabBarViewController *tabCtrl = (KSTabBarViewController *)vc;
+                    CustomNavViewController *navCtrl = (CustomNavViewController *)tabCtrl.selectedViewController;
+                    if ([navCtrl.visibleViewController isKindOfClass:NSClassFromString(@"NotiferMessageViewController")]) {
+                        NotiferMessageViewController *ctrl = (NotiferMessageViewController *)navCtrl.visibleViewController;
+                        [ctrl refreshView];
+                    }
+                    else {
+                        [self.tabBarController tabBarSelectedWithIndex:0];
+                        CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                        NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
+                        [navCtrl pushViewController:ctrl animated:YES];
+                    }
+                }
+                else {
+                    [self.tabBarController tabBarSelectedWithIndex:0];
+                    CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                    NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
+                    [navCtrl pushViewController:ctrl animated:YES];
+                }
+            }
+        }
+        else {
+            NSString *webUrl = [dict stringValueForKey:@"url"];
+            if (![NSString isEmptyString:webUrl]) {
+                KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+                webCtrl.url = webUrl;
+                CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
+                [navCtrl pushViewController:webCtrl animated:YES];
+            }
+        }
+        self.outLinkParm = nil;
+    }
+}
+
+
 @end

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_selected.imageset/tab_mall_selected@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_selected.imageset/tab_mall_selected@3x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_unselected.imageset/tab_mall_unselected@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Tabbar/tab_mall_unselected.imageset/tab_mall_unselected@3x.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/Boat_Loader.json


+ 40 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSCustomLoadingManager.h

@@ -0,0 +1,40 @@
+//
+//  KSCustomLoadingManager.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/28.
+//
+
+#import <Foundation/Foundation.h>
+
+#define KSLoading_manager ([KSCustomLoadingManager shareInstance])
+
+typedef void(^LoadingFinishCallback)(void);
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface KSCustomLoadingManager : NSObject
+
++ (instancetype)shareInstance;
+
+- (void)showCustomLoading;
+
+- (void)hideCustomLoading;
+
+- (void)showProgressCallback:(LoadingFinishCallback)callback;
+
+- (void)hideProgress;
+
+- (void)MBPShowText:(NSString *)tipsText inView:(UIView *_Nullable)displayView callback:(LoadingFinishCallback)callback;
+
+- (void)showSuccessMessage:(NSString *)successMsg inView:(UIView *_Nullable)displayView callback:(LoadingFinishCallback)callback;
+
+- (void)showErrorMessage:(NSString *)errorMsg inView:(UIView *_Nullable)displayView callback:(LoadingFinishCallback)callback;
+
+- (void)showSuccessMessage:(NSString *)successMsg callback:(LoadingFinishCallback)callback;
+
+- (void)showErrorMessage:(NSString *)errorMsg callback:(LoadingFinishCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 210 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSCustomLoadingManager.m

@@ -0,0 +1,210 @@
+//
+//  KSCustomLoadingManager.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/28.
+//
+
+#import "KSCustomLoadingManager.h"
+#import <Lottie/Lottie.h>
+#import "KSLoadingSuccessView.h"
+
+@interface KSCustomLoadingManager ()
+
+@property (nonatomic, strong) MBProgressHUD *loadingHUD;
+
+@property (nonatomic, strong) MBProgressHUD *tipsHUD;
+
+@property (nonatomic, strong) MBProgressHUD *customHUD;
+
+@property (nonatomic, strong) LOTAnimationView *animationView;
+
+@end
+
+@implementation KSCustomLoadingManager
+
++ (instancetype)shareInstance {
+    static KSCustomLoadingManager *manager = nil;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        manager = [[KSCustomLoadingManager alloc] init];
+    });
+    return manager;
+}
+
+
+- (void)showCustomLoading {
+    dispatch_main_async_safe(^{
+        [MBProgressHUD hideHUD];
+        [self.customHUD showAnimated:YES];
+        [self.animationView play];
+        [self.customHUD hideAnimated:YES afterDelay:15.0f];
+        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
+    });
+}
+
+- (void)hideCustomLoading {
+    dispatch_main_async_safe(^{
+        if (self->_customHUD) {
+            [self->_customHUD removeFromSuperview];
+            self->_customHUD = nil;
+            [self.animationView stop];
+        }
+        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
+    })
+}
+- (void)showProgressCallback:(LoadingFinishCallback)callback {
+    dispatch_main_async_safe(^{
+        [self hideAllHUDView];
+        self.loadingHUD = [MBProgressHUD showHUDAddedTo:[self getLastWindow] animated:YES];
+        self.loadingHUD.mode = MBProgressHUDModeIndeterminate;//如果没有文字,则显示菊花
+        self.loadingHUD.contentColor = [UIColor whiteColor];
+        self.loadingHUD.label.textColor = [UIColor whiteColor];
+        self.loadingHUD.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+        self.loadingHUD.bezelView.backgroundColor = [UIColor colorWithHexString:@"#000000" alpha:0.8];
+        [self.loadingHUD hideAnimated:YES afterDelay:15.0f];
+        self.loadingHUD.completionBlock = ^{
+            callback();
+        };
+    });
+    
+}
+
+- (void)hideProgress {
+    dispatch_main_async_safe(^{
+        [self hideAllHUDView];
+        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
+    });
+    
+}
+
+- (void)MBPShowText:(NSString *)tipsText inView:(UIView *)displayView callback:(nonnull LoadingFinishCallback)callback {
+    __block UIView *view = displayView;
+    dispatch_main_async_safe(^{
+        [self hideAllHUDView];
+        if (view == nil) {
+            view = [self getLastWindow];
+        }
+        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
+        hud.removeFromSuperViewOnHide =YES;
+        hud.mode = MBProgressHUDModeText;
+        hud.detailsLabel.text = tipsText;
+        hud.detailsLabel.numberOfLines = 0;
+        hud.minSize = CGSizeMake(132.f, 60.0f);
+        hud.detailsLabel.textColor = [UIColor whiteColor];
+        hud.detailsLabel.font = [UIFont systemFontOfSize:14.0f];
+        hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+        hud.bezelView.backgroundColor = [UIColor colorWithHexString:@"#000000" alpha:0.8];
+        double hiddenTime = tipsText.length > 15 ? 3.0f : 1.5f;
+        [hud hideAnimated:YES afterDelay:hiddenTime];
+        hud.completionBlock = ^{
+            callback();
+        };
+    });
+}
+
+- (void)showSuccessMessage:(NSString *)successMsg callback:(LoadingFinishCallback)callback {
+    dispatch_main_async_safe(^{
+        [self show:successMsg animationType:KSANIMATIONTYPE_SUCCESS inView:nil callback:callback];
+    });
+}
+
+- (void)showErrorMessage:(NSString *)errorMsg callback:(LoadingFinishCallback)callback {
+    dispatch_main_async_safe(^{
+        [self show:errorMsg animationType:KSANIMATIONTYPE_SUCCESS inView:nil callback:callback];
+    });
+}
+
+
+- (void)showSuccessMessage:(NSString *)successMsg inView:(UIView *)displayView callback:(nonnull LoadingFinishCallback)callback {
+    dispatch_main_async_safe(^{
+        [self show:successMsg animationType:KSANIMATIONTYPE_SUCCESS inView:displayView callback:callback];
+    });
+    
+}
+
+- (void)showErrorMessage:(NSString *)errorMsg inView:(UIView *)displayView callback:(nonnull LoadingFinishCallback)callback {
+    dispatch_main_async_safe(^{
+        [self show:errorMsg animationType:KSANIMATIONTYPE_FAILED inView:displayView callback:callback];
+    });
+}
+
+- (void)show:(NSString *)text animationType:(KSANIMATIONTYPE)animationType inView:(UIView *)displayView callback:(LoadingFinishCallback)callback {
+    KSLoadingSuccessView *statusView = [[KSLoadingSuccessView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
+    statusView.animationType = animationType;
+    [self ks_showCustomView:statusView message:text inView:displayView callback:callback];
+}
+
+- (void)ks_showCustomView:(UIView *)customView message:(NSString *)message inView:(UIView *)view callback:(LoadingFinishCallback)callback {
+    [self hideAllHUDView];
+    if (view == nil) {
+        view = [self getLastWindow];
+    }
+    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
+    // 设置模式
+    hud.mode = MBProgressHUDModeCustomView;
+    // 设置自定义view
+    hud.customView = customView;
+
+    if (message) {
+        hud.detailsLabel.text = message;
+        hud.detailsLabel.numberOfLines = 0;
+        hud.detailsLabel.textColor = [UIColor whiteColor];
+        hud.detailsLabel.font = [UIFont systemFontOfSize:14.0f];
+    }
+    [hud setNeedsLayout];
+    [hud setNeedsDisplay];
+    // 隐藏时候从父控件中移除
+    hud.removeFromSuperViewOnHide = YES;
+    hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+    hud.bezelView.backgroundColor = [UIColor colorWithHexString:@"#000000" alpha:0.8];
+    double hiddenTime = message.length > 15 ? 3.0f : 1.5f;
+    hud.completionBlock = ^{
+        callback();
+    };
+    [hud hideAnimated:YES afterDelay:hiddenTime];
+}
+
+
+
+- (void)hideAllHUDView {
+    if (_loadingHUD) {
+        [_loadingHUD hideAnimated:YES];
+    }
+}
+
+- (UIWindow *)getLastWindow {
+    NSArray *windows = [UIApplication sharedApplication].windows;
+    for (UIWindow *window in [windows reverseObjectEnumerator]) {
+        if ([window isKindOfClass:[UIWindow class]] && CGRectEqualToRect(window.bounds, [UIScreen mainScreen].bounds)) {
+            return window;
+        }
+    }
+    return [UIApplication sharedApplication].keyWindow;
+}
+
+- (MBProgressHUD *)hud {
+    if (!_customHUD) {
+        _customHUD = [MBProgressHUD showHUDAddedTo:[self getLastWindow] animated:YES];
+        _customHUD.removeFromSuperViewOnHide = YES;
+        _customHUD.mode = MBProgressHUDModeCustomView;
+        _customHUD.animationType = MBProgressHUDAnimationZoomOut;
+        _customHUD.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+        _customHUD.bezelView.backgroundColor = [UIColor clearColor];
+        _customHUD.customView = self.animationView;
+    }
+    return _customHUD;
+}
+
+
+- (LOTAnimationView *)animationView {
+    if (!_animationView) {
+        _animationView = [LOTAnimationView animationNamed:@"student_refresh"];
+        _animationView.contentMode = UIViewContentModeScaleAspectFill;
+        _animationView.animationSpeed = 2;
+        _animationView.loopAnimation = YES;
+    }
+    return _animationView;
+}
+
+@end

+ 24 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSLoadingSuccessView.h

@@ -0,0 +1,24 @@
+//
+//  KSLoadingSuccessView.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/29.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, KSANIMATIONTYPE) {
+    KSANIMATIONTYPE_NONE,
+    KSANIMATIONTYPE_SUCCESS,   // 成功
+    KSANIMATIONTYPE_FAILED,    // 失败
+};
+
+@interface KSLoadingSuccessView : UIView<CAAnimationDelegate>
+
+@property (nonatomic, assign) KSANIMATIONTYPE animationType;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 88 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/CustomLoading/KSLoadingSuccessView.m

@@ -0,0 +1,88 @@
+//
+//  KSLoadingSuccessView.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2022/7/29.
+//
+
+#import "KSLoadingSuccessView.h"
+
+@interface KSLoadingSuccessView ()
+
+@property (nonatomic, strong) CAShapeLayer *shapeLayer;
+
+@end
+
+@implementation KSLoadingSuccessView
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    self = [super initWithFrame:frame];
+    if (self) {
+        self.backgroundColor = [UIColor clearColor];
+        self.translatesAutoresizingMaskIntoConstraints = NO;
+        self.layer.cornerRadius = 4;
+        self.layer.masksToBounds = YES;
+    }
+    return self;
+}
+
+- (void)setAnimationType:(KSANIMATIONTYPE)animationType {
+    _animationType = animationType;
+    [self drawStatusLine];
+}
+
+
+- (void)drawStatusLine {
+    CGFloat radius = CGRectGetWidth(self.bounds) / 2.0f;
+    
+    UIBezierPath *path = [UIBezierPath bezierPath];
+    if (_animationType == KSANIMATIONTYPE_SUCCESS) {
+        [path moveToPoint:CGPointMake(self.centerX - radius + 5, self.centerY)];
+        [path addLineToPoint:CGPointMake(self.centerX - 3, self.centerY + 10)];
+        [path addLineToPoint:CGPointMake(self.centerX + radius - 5, self.centerY - 10)];
+    }
+    else if (_animationType == KSANIMATIONTYPE_FAILED) {
+        [path moveToPoint:CGPointMake(radius / 2.0f, radius / 2.0f)];
+        [path addLineToPoint:CGPointMake(radius + radius / 2.0f, radius + radius / 2.0f)];
+        [path moveToPoint:CGPointMake(radius / 2.0f, radius + radius / 2.0f)];
+        [path addLineToPoint:CGPointMake(radius + radius / 2.0f, radius / 2.0f)];
+    }
+    _shapeLayer = [CAShapeLayer layer];
+    _shapeLayer.path = path.CGPath;
+    // 线条颜色
+    _shapeLayer.strokeColor = UIColor.whiteColor.CGColor;
+    // 填充颜色
+    _shapeLayer.fillColor = UIColor.clearColor.CGColor;
+    _shapeLayer.lineWidth = 5.0f;
+    // 设置线头为圆
+    _shapeLayer.lineCap = @"round";
+    _shapeLayer.strokeStart = 0.0f;
+    _shapeLayer.strokeEnd = 0.0f;
+    [self.layer addSublayer:_shapeLayer];
+    
+    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
+    animation.fromValue = @0.0f;
+    animation.toValue = @1.0f;
+    [animation setDuration:0.45f];
+    // 动画结束之后不消失
+    animation.removedOnCompletion = NO;
+    animation.fillMode = kCAFillModeForwards;
+    [_shapeLayer addAnimation:animation forKey:@"strokeEnd"];
+}
+
+
+- (CGSize)intrinsicContentSize {
+    CGFloat contentViewH = 40;
+    CGFloat contentViewW = 40;
+    return CGSizeMake(contentViewW, contentViewH);
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 0 - 4
KulexiuForStudent/KulexiuForStudent/Common/Base/KSRCIMDataSource.m

@@ -113,10 +113,6 @@
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
             NSDictionary *result = [dic dictionaryValueForKey:@"data"];
             NSString *name = [result stringValueForKey:@"nickname"];
-            NSString *title = [result stringValueForKey:@"roleType"];
-            if (![NSString isEmptyString:title]) {
-                name = [NSString stringWithFormat:@"%@(%@)", name, title];
-            }
             NSDictionary *userDic = [result dictionaryValueForKey:@"user"];
             RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:userId name:name portrait:[userDic stringValueForKey:@"avatar"]];
             completion(user);

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherShowCell.m

@@ -51,7 +51,7 @@
         self.callback = callback;
     }
     self.model = sourceModel;
-    if ([NSString isEmptyString:sourceModel.cover]) {
+    if (![NSString isEmptyString:sourceModel.cover]) {
         [self.videoCover sd_setImageWithURL:[NSURL URLWithString:[sourceModel.cover getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"video_placeholder"]];
     }
     else {

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Login/Model/UserInfoManager.m

@@ -79,7 +79,7 @@
                     [self showTipsAlert];
                 }
                 else {
-                    [self showMessage:@"该账号在其他地方登录"];
+                    [self showMessage:@"登录过期,请重新登录"];
                     [KSNetworkingManager logoutAction];
                     NSLog(@"----dddd");
                 }

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor