From aac2688a33ce3112d33af25688a968794eb4890a Mon Sep 17 00:00:00 2001 From: Frank <472730949@qq.com> Date: Tue, 11 Nov 2025 12:36:21 +0800 Subject: [PATCH] Fix i18n problem that `NSBundle` initialization parameter cannot be nil. --- MJRefresh/NSBundle+MJRefresh.m | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/MJRefresh/NSBundle+MJRefresh.m b/MJRefresh/NSBundle+MJRefresh.m index c19cbe85..02d08c6a 100644 --- a/MJRefresh/NSBundle+MJRefresh.m +++ b/MJRefresh/NSBundle+MJRefresh.m @@ -56,6 +56,7 @@ + (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value // 如果没有缓存, 则走初始化逻辑 if (mj_defaultI18nBundle == nil) { + mj_defaultI18nBundle = NSBundle.mainBundle; NSString *language = MJRefreshConfig.defaultConfig.languageCode; // 如果配置中没有配置语言 if (!language) { @@ -66,9 +67,13 @@ + (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value bundle = bundle ? bundle : NSBundle.mainBundle; // 按语言选取语言包 NSString *i18nFolderPath = [bundle pathForResource:language ofType:@"lproj"]; - mj_defaultI18nBundle = [NSBundle bundleWithPath:i18nFolderPath]; - // 检查语言包, 如果没有查找到, 则默认使用 mainBundle - mj_defaultI18nBundle = mj_defaultI18nBundle ? mj_defaultI18nBundle : NSBundle.mainBundle; + if (i18nFolderPath) { + NSBundle *i18nFolderBundle = [NSBundle bundleWithPath:i18nFolderPath]; + // 检查语言包 + if (i18nFolderBundle) { + mj_defaultI18nBundle = i18nFolderBundle; + } + } // 获取 MJRefresh 自有的语言包 if (mj_systemI18nBundle == nil) {