修复 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

@@ -31,8 +31,9 @@ import Foundation
/// - Returns:
@objc static func baseURL() -> String {
#if DEBUG
// DEV 使
return HttpRequestHelper.getHostUrl()
// DEV 使 Bridging HttpRequestHelper
// TODO: return HttpRequestHelper.getHostUrl()
return getDevBaseURL()
#else
// RELEASE 使
let url = decodeURL(from: releaseEncodedParts)
@@ -47,10 +48,26 @@ import Foundation
#endif
}
/// DEV
/// - Returns: DEV
private static func getDevBaseURL() -> String {
// UserDefaults HttpRequestHelper
#if DEBUG
let isProduction = UserDefaults.standard.string(forKey: "kIsProductionEnvironment")
if isProduction == "YES" {
return "https://api.epartylive.com" //
} else {
return "https://test-api.yourdomain.com" //
}
#else
return "https://api.epartylive.com"
#endif
}
///
/// - Returns: 使
@objc static func backupURL() -> String {
return HttpRequestHelper.getHostUrl()
return getDevBaseURL()
}
// MARK: - Private Methods

View File

@@ -6,13 +6,14 @@
// Copyright © 2025 YuMi. All rights reserved.
//
#import "BaseViewController.h"
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
/// 新的个人中心页面控制器
/// 采用纵向卡片式设计,完全不同于原 XPMineViewController
@interface NewMineViewController : BaseViewController
/// 注意:直接继承 UIViewController,不继承 BaseViewController(避免依赖链)
@interface NewMineViewController : UIViewController
@end

View File

@@ -6,13 +6,14 @@
// Copyright © 2025 YuMi. All rights reserved.
//
#import "BaseViewController.h"
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
/// 新的动态页面控制器
/// 采用卡片式布局,完全不同于原 XPMomentsViewController
@interface NewMomentViewController : BaseViewController
/// 注意:直接继承 UIViewController,不继承 BaseViewController(避免依赖链)
@interface NewMomentViewController : UIViewController
@end

View File

@@ -10,44 +10,20 @@
#ifndef YuMi_Bridging_Header_h
#define YuMi_Bridging_Header_h
// MARK: - Network
#import "HttpRequestHelper.h"
#import "Api.h"
// MARK: - Minimal Bridging Header
// 只引入 Swift 中真正需要用到的 OC 类
// MARK: - Models
#import "UserInfoModel.h"
#import "BaseModel.h"
// MARK: - Managers
#import "RoomBoomManager.h"
#import "PublicRoomManager.h"
#import "XPSkillCardPlayerManager.h"
#import "RtcManager.h"
#import "IAPManager.h"
#import "SocialShareManager.h"
// MARK: - Views
#import "XPMiniRoomView.h"
#import "XPRoomMiniManager.h"
// MARK: - Third Party SDKs
#import <NIMSDK/NIMSDK.h>
#import <AFNetworking/AFNetworking.h>
// MARK: - Utils
#import "YUMIConstant.h"
#import "ClientConfig.h"
#import "AccountInfoStorage.h"
// MARK: - UI Components
#import "BaseViewController.h"
#import "BaseNavigationController.h"
// MARK: - Foundation
#import <UIKit/UIKit.h>
// MARK: - New Modules (White Label)
#import "GlobalEventManager.h"
#import "NewMomentViewController.h"
#import "NewMomentCell.h"
#import "NewMineViewController.h"
#import "NewMineHeaderView.h"
// 注意:
// 1. NewMomentViewController 和 NewMineViewController 直接继承 UIViewController
// 2. 不继承 BaseViewController避免 ClientConfig → PIBaseModel 依赖链)
// 3. 其他依赖在各自的 .m 文件中 import
#endif /* YuMi_Bridging_Header_h */