修复 PIBaseModel 依赖链问题

核心修复:
- NewMomentViewController: 改为直接继承 UIViewController
- NewMineViewController: 改为直接继承 UIViewController
- 不再继承 BaseViewController(避免 ClientConfig → PIBaseModel 依赖链)

依赖链问题分析:
BaseViewController → ClientConfig → ClientDataModel → PIBaseModel
ClientConfig 本身也继承自 PIBaseModel

切断依赖链后,Bridging Header 只需要 UIKit + 3 个新模块,
不会引入任何复杂的 Model 依赖。

这样做的好处:
1. 编译不会有 PIBaseModel 错误
2. 新模块完全独立,不依赖旧代码
3. 更符合白牌项目的目标(完全不同的代码结构)
This commit is contained in:
edwinQQQ
2025-10-09 18:49:44 +08:00
parent 1e759ba461
commit bf31ffda51
8 changed files with 1081 additions and 44 deletions

View File

@@ -418,6 +418,13 @@
23FF42762AA6E1480055733C /* XPHomeRecommendOtherRoomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42752AA6E1480055733C /* XPHomeRecommendOtherRoomView.m */; };
23FF42792AA6E19C0055733C /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */; };
23FF428E2AAB2D3A0055733C /* XPCandyTreeBuyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */; };
4C06427F2E97BD6D00BAF413 /* NewMineHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642732E97BD6D00BAF413 /* NewMineHeaderView.m */; };
4C0642802E97BD6D00BAF413 /* NewMomentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C06427A2E97BD6D00BAF413 /* NewMomentCell.m */; };
4C0642812E97BD6D00BAF413 /* NewMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642702E97BD6D00BAF413 /* NewMineViewController.m */; };
4C0642822E97BD6D00BAF413 /* NewTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C06427D2E97BD6D00BAF413 /* NewTabBarController.swift */; };
4C0642832E97BD6D00BAF413 /* NewMomentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642772E97BD6D00BAF413 /* NewMomentViewController.m */; };
4C0642852E97BD9500BAF413 /* APIConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642842E97BD9500BAF413 /* APIConfig.swift */; };
4C0642882E97BDA300BAF413 /* GlobalEventManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0642872E97BDA300BAF413 /* GlobalEventManager.m */; };
4C0A5B842E02675300955219 /* MedalsCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A5B832E02675300955219 /* MedalsCollectionViewCell.m */; };
4C0A5B872E02BB1100955219 /* MedalsLevelIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A5B862E02BB1100955219 /* MedalsLevelIndicatorView.m */; };
4C0A5B8A2E02BC3900955219 /* MedalsDetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0A5B892E02BC3900955219 /* MedalsDetailView.m */; };
@@ -2455,6 +2462,19 @@
23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeMenuSourceModel.m; sourceTree = "<group>"; };
23FF428C2AAB2D3A0055733C /* XPCandyTreeBuyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPCandyTreeBuyView.h; sourceTree = "<group>"; };
23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeBuyView.m; sourceTree = "<group>"; };
4C06426F2E97BD6D00BAF413 /* NewMineViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMineViewController.h; sourceTree = "<group>"; };
4C0642702E97BD6D00BAF413 /* NewMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMineViewController.m; sourceTree = "<group>"; };
4C0642722E97BD6D00BAF413 /* NewMineHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMineHeaderView.h; sourceTree = "<group>"; };
4C0642732E97BD6D00BAF413 /* NewMineHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMineHeaderView.m; sourceTree = "<group>"; };
4C0642762E97BD6D00BAF413 /* NewMomentViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMomentViewController.h; sourceTree = "<group>"; };
4C0642772E97BD6D00BAF413 /* NewMomentViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMomentViewController.m; sourceTree = "<group>"; };
4C0642792E97BD6D00BAF413 /* NewMomentCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewMomentCell.h; sourceTree = "<group>"; };
4C06427A2E97BD6D00BAF413 /* NewMomentCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewMomentCell.m; sourceTree = "<group>"; };
4C06427D2E97BD6D00BAF413 /* NewTabBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewTabBarController.swift; sourceTree = "<group>"; };
4C0642842E97BD9500BAF413 /* APIConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIConfig.swift; sourceTree = "<group>"; };
4C0642862E97BDA300BAF413 /* GlobalEventManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GlobalEventManager.h; sourceTree = "<group>"; };
4C0642872E97BDA300BAF413 /* GlobalEventManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GlobalEventManager.m; sourceTree = "<group>"; };
4C0642892E97BDC900BAF413 /* YuMi-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YuMi-Bridging-Header.h"; sourceTree = "<group>"; };
4C0A5B822E02675300955219 /* MedalsCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MedalsCollectionViewCell.h; sourceTree = "<group>"; };
4C0A5B832E02675300955219 /* MedalsCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MedalsCollectionViewCell.m; sourceTree = "<group>"; };
4C0A5B852E02BB1100955219 /* MedalsLevelIndicatorView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MedalsLevelIndicatorView.h; sourceTree = "<group>"; };
@@ -4883,6 +4903,7 @@
14D8768029A751A100E1DD7F /* Config */ = {
isa = PBXGroup;
children = (
4C0642842E97BD9500BAF413 /* APIConfig.swift */,
E8DEC99327648FA50078CB70 /* ClientConfig.h */,
E8DEC99427648FA50078CB70 /* ClientConfig.m */,
E875FA8527D619820086ED04 /* ClientDataModel.h */,
@@ -5119,6 +5140,7 @@
2368ECCD2BC38F9800EDF4C9 /* InfoPlist.strings */,
E80E09AB2A40B70100CD2BE7 /* Localizable.strings */,
189DD53E26DE255600AB55B1 /* main.m */,
4C0642892E97BDC900BAF413 /* YuMi-Bridging-Header.h */,
);
path = YuMi;
sourceTree = "<group>";
@@ -5199,6 +5221,9 @@
189DD56126DE45F800AB55B1 /* Modules */ = {
isa = PBXGroup;
children = (
4C0642752E97BD6D00BAF413 /* NewMine */,
4C06427C2E97BD6D00BAF413 /* NewMoments */,
4C06427E2E97BD6D00BAF413 /* NewTabBar */,
54283CE22CE48884009729B5 /* ShoppingMall */,
E87E624F2A3F54B5002F68C9 /* YMNewHome */,
18E7B1B426E8B2960064BC9B /* YMTabbar */,
@@ -6470,6 +6495,68 @@
path = SubViews;
sourceTree = "<group>";
};
4C0642712E97BD6D00BAF413 /* Controllers */ = {
isa = PBXGroup;
children = (
4C06426F2E97BD6D00BAF413 /* NewMineViewController.h */,
4C0642702E97BD6D00BAF413 /* NewMineViewController.m */,
);
path = Controllers;
sourceTree = "<group>";
};
4C0642742E97BD6D00BAF413 /* Views */ = {
isa = PBXGroup;
children = (
4C0642722E97BD6D00BAF413 /* NewMineHeaderView.h */,
4C0642732E97BD6D00BAF413 /* NewMineHeaderView.m */,
);
path = Views;
sourceTree = "<group>";
};
4C0642752E97BD6D00BAF413 /* NewMine */ = {
isa = PBXGroup;
children = (
4C0642712E97BD6D00BAF413 /* Controllers */,
4C0642742E97BD6D00BAF413 /* Views */,
);
path = NewMine;
sourceTree = "<group>";
};
4C0642782E97BD6D00BAF413 /* Controllers */ = {
isa = PBXGroup;
children = (
4C0642762E97BD6D00BAF413 /* NewMomentViewController.h */,
4C0642772E97BD6D00BAF413 /* NewMomentViewController.m */,
);
path = Controllers;
sourceTree = "<group>";
};
4C06427B2E97BD6D00BAF413 /* Views */ = {
isa = PBXGroup;
children = (
4C0642792E97BD6D00BAF413 /* NewMomentCell.h */,
4C06427A2E97BD6D00BAF413 /* NewMomentCell.m */,
);
path = Views;
sourceTree = "<group>";
};
4C06427C2E97BD6D00BAF413 /* NewMoments */ = {
isa = PBXGroup;
children = (
4C0642782E97BD6D00BAF413 /* Controllers */,
4C06427B2E97BD6D00BAF413 /* Views */,
);
path = NewMoments;
sourceTree = "<group>";
};
4C06427E2E97BD6D00BAF413 /* NewTabBar */ = {
isa = PBXGroup;
children = (
4C06427D2E97BD6D00BAF413 /* NewTabBarController.swift */,
);
path = NewTabBar;
sourceTree = "<group>";
};
4C45C1A82E6837BF00E73A44 /* Manager */ = {
isa = PBXGroup;
children = (
@@ -8013,6 +8100,8 @@
E81C279926EB64BA0031E639 /* Global */ = {
isa = PBXGroup;
children = (
4C0642862E97BDA300BAF413 /* GlobalEventManager.h */,
4C0642872E97BDA300BAF413 /* GlobalEventManager.m */,
4C84A9C92E602B1A002C10FC /* BuglyManager.h */,
4C84A9CA2E602B1A002C10FC /* BuglyManager.m */,
E81C279A26EB65560031E639 /* YUMIMacroUitls.h */,
@@ -12570,6 +12659,7 @@
E84A2E932A527EC800D6AF8A /* XPIncomeRecordPresent.m in Sources */,
236B2E432AA07D06003967A8 /* NSString+RW.m in Sources */,
239D0FC92C045F92002977CE /* MSRoomGameVC.m in Sources */,
4C0642852E97BD9500BAF413 /* APIConfig.swift in Sources */,
E85E7B172A4EB0D200B6D00A /* ClanMemberDetailInfoModel.m in Sources */,
54C3895C2C215F5100FD47B1 /* XPHomeMineViewController.m in Sources */,
9B044DA0282D32F700DE4859 /* MicroInviteExtModel.m in Sources */,
@@ -12679,6 +12769,7 @@
E85E7B162A4EB0D200B6D00A /* GuildInfoModel.m in Sources */,
E885D53C2977FBFD004DC088 /* MessageTimeView.m in Sources */,
E8AC723A26F49AAE007D6E91 /* XPMineNotifyStatus.m in Sources */,
4C0642882E97BDA300BAF413 /* GlobalEventManager.m in Sources */,
E87DF50E2A42CF15009C1185 /* HomeLiveRoomModel.m in Sources */,
E8F6135F291E274E00E12650 /* NSArray+Safe.m in Sources */,
4C44BD5D2D151B5C00F321FA /* RoomSideMenu.m in Sources */,
@@ -12707,6 +12798,11 @@
E81060F42987C6B200B772F0 /* MessageOpenLiveModel.m in Sources */,
E8AEAEF027141C430017FCE0 /* XPRoomMenuContainerView.m in Sources */,
9B85F3532806AB9A006EDF51 /* XPAnchorPKResultView.m in Sources */,
4C06427F2E97BD6D00BAF413 /* NewMineHeaderView.m in Sources */,
4C0642802E97BD6D00BAF413 /* NewMomentCell.m in Sources */,
4C0642812E97BD6D00BAF413 /* NewMineViewController.m in Sources */,
4C0642822E97BD6D00BAF413 /* NewTabBarController.swift in Sources */,
4C0642832E97BD6D00BAF413 /* NewMomentViewController.m in Sources */,
E8DEC99527648FA50078CB70 /* ClientConfig.m in Sources */,
9B6E8577281ABECC0041A321 /* XPRoomInsideRecommendEmptyCell.m in Sources */,
4CFE7F422E45ECEC00F77776 /* PublicRoomManager.m in Sources */,
@@ -13290,6 +13386,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = Z7UCRF23F3;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -13531,8 +13628,8 @@
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "";
SWIFT_VERSION = 5.0;
SWIFT_OBJC_BRIDGING_HEADER = "YuMi/YuMi-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
};
name = Debug;
@@ -13548,6 +13645,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -13779,8 +13877,8 @@
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OBJC_BRIDGING_HEADER = "";
SWIFT_VERSION = 5.0;
SWIFT_OBJC_BRIDGING_HEADER = "YuMi/YuMi-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
};
name = Release;