iOS开发教程之APP内部切换语言的实现方法-创新互联

前言

创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目成都网站设计、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元相城做网站,已为上家服务,为相城各地企业和个人服务,联系电话:18980820575

相信大家在iOS开发中都遇到了一个问题,随着APP越来越完善,很多APP都做了国际化,也实现了APP内部切换语言。那么如何实现的呢?下面来一起看看详细的介绍吧

原理

国际化都会走到NSBundle的- (NSString *)localizedStringForKey:(NSString *)key value:(nullable NSString *)value table:(nullable NSString *)tableName方法,使用自定义Bundle替换NSBundle,通过切换根控制器来完成APP内部切换语言。

1.拦截国际化方法

通过分类和runtime来实现拦截,将Bundle替换为自定义CLBundle。

+ (void)load {
 static dispatch_once_t onceToken;
 dispatch_once(&onceToken, ^{
  //动态继承、交换,方法类似KVO,通过修改[NSBundle mainBundle]对象的isa指针,使其指向它的子类CLBundle,这样便可以调用子类的方法;其实这里也可以使用method_swizzling来交换mainBundle的实现,来动态判断,可以同样实现。
  object_setClass([NSBundle mainBundle], [CLBundle class]);
 });
}

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:iOS开发教程之APP内部切换语言的实现方法-创新互联
文章位置:http://bzwzjz.com/article/cdsehj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 温江网站设计 成都网站建设 网站制作 梓潼网站设计 网站制作 高端网站设计 重庆网站设计 营销型网站建设 成都模版网站建设 网站建设 四川成都网站建设 成都网站建设 成都企业网站设计 成都网站建设公司 成都做网站建设公司 企业网站设计 网站建设推广 定制网站设计 公司网站建设 企业网站建设 定制网站制作