iPhone的应用程序名称也可以本地化,可以按照以下步骤来实施: 1....将Info.plist本地化 在Info.plist上右键点选Get Info,在General标签下,点击Make File Localizable按钮。...按钮,添加你需要的本地化语言。 如简体中文"zh-hans",然后点击添加 注意这里用了“zh-hans"表示简体中文,你也可以用"zh-CN"来表示,不过有些情况下这个可能不起作用。...创建InfoPlist.strings文件,并本地化它 在项目目录下新建一个InfoPlist.strings文件,重复上面的步骤,将其本地化。 ## 4....编辑InfoPlist.strings中的内容。 现在你就可以编辑InfoPlist.strings中的内容,实现应用程序名称的本地化了。
(一)应用名称本地化/国际化 应用名称本地化,是指同一个App的名称,在不同的语言环境下(也就是手机设备的语言设置)显示不同的名称。...比如,微信在简体中文环境下App名称显示为“微信”,在英语环境下显示为“weChat”。下面就开始进行应用名称本地化。...原理:程序启动时,会根据操作系统设置的语言,自动加载InfoPlist.strings文件下对应的语言文件,然后显示应用程序的名字。...(1)在InfoPlist.strings(english)中加入如下代码: // Localizable App Name是App在英语环境环境下显示的名称 CFBundleDisplayName...= "Localizable App Name"; 备注:CFBundleDisplayName可以使用双引号,也可以不使用双引号!
前言 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。...往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用程序所展示的文字、图片等信息,能够让讲不同语言的用户读懂、看懂。进而提出为同一个应用程序适配多种语言,也即是国际化。...(一)应用名称本地化/国际化 应用名称本地化,是指同一个App的名称,在不同的语言环境下(也就是手机设备的语言设置)显示不同的名称。...原理:程序启动时,会根据操作系统设置的语言,自动加载InfoPlist.strings文件下对应的语言文件,然后显示应用程序的名字。..."Localizable App Name"; 备注:CFBundleDisplayName可以使用双引号,也可以不使用双引号!
97184] Second argument 2017-01-06 11:55:07.399 BezierPathDemo[1203:97184] Third argument NSInvocation使用时有下面三个地方要注意下
nib名称 owner The object to assign as the nib’s File's Owner object....iPhone wC hR wC hC 5.5 iPhone wC hR wR hC iPad wR hR wR hR User Define Runtime Attribute IB 中的类型 Swift Objective-C...在 Objective-C 里面可以对应 NSInteger、NSNumber 等。...两种策略 App 本地化跟随系统语言 App 内部有一个可以设置语言的选项 本地化介绍 Base 文本的本地化 利用 NSLocalizedString。...External Object 重构 VC 只能在于 xib IB 中的关键字总结 Swift @IBAction @IBOutlet @IBDesignable @IBInspectable Objective-C
最近接到新的需求,要求把app显示名称做到简单的本地化和国际化(iPhone设置为英文的时候显示英文名称,iPhone设置为中文的时候显示中文的名称)如下图所示: 0.不同语言下显示的名称.png...实现步骤: 新建String Files 文件 1.新建String Files 文件.png 文件名一定要叫做InfoPlist.Strings!...文件名一定要叫做InfoPlist.Strings! 文件名一定要叫做InfoPlist.Strings!...文件 6.给项目配置InfoPlist.strings文件.png 注意InfoPlist.strings文件变化 7.注意InfoPlist.strings...文件变化.png 设置app在不同语言下显示的名称 8.设置app显示名称.png 效果如图所示 9.不同语言下显示的名称.png Demo传送门:HQChangeAppDisplayName
一、知识储备 Objective-C 提供的多语言宏,苹果一共提供了四个宏供开发者使用: 1. NSLocalizedString(key, comment) 2.....strings 文件的名称。...2-4 三、在项目中添加本地化文件 项目中可以添加以下本地化文件: 1、App名称本地化(默认文件名为:InfoPlist.strings,且必须是这个名字) 2、代码中字符串本地化(默认文件名为...:Localizable.strings,且必须是这个名字) 3、自定义代码中字符串本地化(可以自定义文件名和位置) 因为这个多语言功能是在子模块的,所以只能使用第三种。...所以我们要加载资源的时候要指定加载的bundle,下面是找到指定的bundle和使用方法。
CFBundleName在哪里设置可以参考上面图1 在苹果应用程序表使用的iOS应用程序的包名称的行为可能会在未来被改变,但是如下所述,如果它确实不会造成任何伤害你的iOS应用设置一个合适的包名称。...项,设置为匹配您在iTunes Connect使用的应用程序名称的值。...为iOS应用指定包的显示名称的详细步骤将在QA1823(更新您的应用程序的显示名称),对于WatchKit应用程序,包显示名称为默认设置为它的容器应用程序的产品名称。...如果您的应用支持多种本地化,一定要本地化的软件包的名称和捆绑iOS应用的显示名称,您WatchKit应用的软件包显示名称,将它们添加到您的所有特定语言的InfoPlist.strings文件。...请参阅本地化的信息属性列表文件的详细信息
kvc的概念简单说下 Key-Value-Coding(KVC)键值编码 我们主要使用的是KVC字典转模型,将plist文件中的数据以数据模型的形式读取。...在构造数据模型时应当使用以下方法 直接设置 - (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues
但是Objective-C提供了一种特别的方式来扩展类,叫Catagory,可以动态的为已经存在的类添加新的行为。这样可以保证在类的原来的基础上,较小的改动就可以增加需要的功能。...Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中。 通过一个简单的例子看看Category如何使用。...implementation Student - (void)hello { NSLog(@"大家好,我是Young"); } @end 开始创建分类Category 001、command + n,选择Object-C...WechatIMG31.jpeg 003、创建成功,在新文件里写扩充方法 在声明文件和实现文件中用“()”把Category的名称括起来。原类名+Category”的这是约定的文件命名方式。...WechatIMG35.jpeg 那的Category的使用场景: 1、类包含了很多个方法实现,而这些方法需要不同团队的成员来实现 2、当你在使用基础类库中的类时,你不想继承这些类而只想添加一些方法时
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。...在以下情况下可以考虑使用外观模式: (1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。 (2) 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。...(2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。...@interface RectShape : Shape 4 5 - (void)draw; 6 7 @end 再创建一个DrawShape.h / DrawShape.m作为Controller使用...DrawShape : NSObject 6 7 + (void)drawRectShape; 8 + (void)drawCircleShape; 9 10 @end Controller中使用
因此,不管是在Unix/Linux下还是在OS X/iOS下,使用Objective-C编程就是一种享受。...由于,Ubuntu已经有了对Objective-C的编译器(gobjc)的安装,因此安装gobjc的步骤可省,如果你用的Ubuntu的旁系系统没有安装可以使用以下命令进行安装—— sudo...由于GNUStep提供的makefile package仅仅提供了C、C++、Objective-C以及Objective-C++这四种编程语言,而不支持汇编语言,因此,如果要在GNUStep工程中使用汇编...下面列出了对几种源文件类型的支持(其中,斜体的appname就是你最终输出可执行文件的名称): 1、appname_C_FILES: C源文件,一般是.c 2、appname_OBJC_FILES...另外,我们也可以直接在控制台使用:gnustep-config --objc-flags 来查看编译Objective-C的默认编译选项,从而可以做些调整。
使用Objective-C解析HTML或者XML,系统自带有两种方式一个是通过libxml,一个是通过NSXMLParser。不过这两种方式都需要自己写很多编码来处理抓取下来的内容,而且不是很直观。...content]; [xpathParser release]; [data release]; 另外,还有一个类似的解决方案可以参考 ElementParser http://github.com/Objective3
装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。...比如游戏机有一个GamePad类, 现在要增加一个作弊功能(例如100条命), 如果直接在GamePad类中去添加可能会影响其他子类的使用 我们考虑装饰模式思维, 先建立一个装饰器实现GamePad的所有功能...[gamePad up]; 18 [gamePad down]; 19 20 //实现作弊方法 21 [gamePad cheat]; 22 23 } 使用...Category更为简单 但是在使用Category时有个细节一定要注意, 尽量不要在Category类中去重写基类方法 假如我们在GamePad+Cheat.h中重写了- (void)up方法, 则整个工程中的
使用 ASIWebPageRequest 库编写 Objective-C 下载器程序是一个简单且高效的方式来处理 HTTP 请求。...由于这个库已经不再更新,推荐使用 CocoaPods 来安装:在 Podfile 中添加以下内容:pod 'ASIHTTPRequest', '~> 1.8.0'然后执行:pod install2....编写下载器程序下面是一个使用 ASIWebPageRequest 下载网页并获取网页内容的简单程序。...启动请求:使用 startAsynchronous 方法启动异步请求。5. 处理进度和超时你可以进一步优化程序,例如设置请求的超时时间或获取下载进度。...保存下载的文件如果你想将网页内容或文件保存到本地,可以使用 writeToFile 方法:NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent
在上一篇文章《Objective-C Runtime详解》中我们探讨了Runtime的基本原理,这篇文章我们将总结一下Runtime的一些基本使用 目录 查询方法 给分类添加属性 更换代码的实现方法...methodBOfClassBWithArg:(NSString *)arg { NSLog(@" methodBOfClassB arg = %@", arg); } @end 查询方法 ---- 在Objective-C...获取类的名称 方法:const char *object_getClassName(id obj),使用比较简单,传入对象即可得到对应分类名。...和《Effective Objective-C 2.0》中提到的: When the compiler saw that an object contained C++ objects, it would...objc_getAssociatedObject(id object, const void *key) 方法通过 object 与 Key 直接获取关联的属性值 上面代码中的第二个参数写的是 _cmd,等价于@selector(name) Objective-C
implementation UIImage (scale) -(UIImage*)scaleToSize:(CGSize)size { // 创建一个bitmap的context // 并把它设置成为当前正在使用的...使当前的context出堆栈 UIGraphicsEndImageContext(); // 返回新的改变大小后的图片 return scaledImage; } @end 如何使用...scaledImage = [image scaleToSize:CGSizeMake(25.0f, 35.0f)]; ---- Previous NSLog中使用的格式符
说直白点就是如果有一个对象很复杂, 重新创建要花费很多的代码或者代价 这个时候可以考虑使用原型模式, 当要创建新实例时通过既有的实例复制一份,再修改不一样的地方值 什么时候考虑使用原型模式呢?...#1 有很多相关的类, 其行为略有不同, 而且主要差异在于内部属性, 如名称/图像等. #2 需要使用组合(树型)对象作为其他东西的基础, 例如, 使用组合对象作为组件来构建另一个组合对象....下面用代码说明如何使用 先创建一个Protocol 1 #import 2 3 @protocol PrototypeCopyProtocol...self.score; 12 stu.address = self.address; 13 14 return stu; 15 } 16 17 @end 下面是Controller中使用
在不特别指明字符串文件名称的情况下,app都将从Localizable.strings中获取对应的本地化文本内容•InfoPlist.strings对应Info.plist的字符串文件。...通常用于app名称、权限警告提示等内容的本地化。...如果需要对其中的一些配置进行本地化处理的话,我们可以使用上文中提到的InfoPlist.strings 使用创建Localizable.strings文件同样的步骤,我们创建一个名为InfoPlist.strings...或Info.plist中,只要我们在InfoPlist.strings中对其进行了本地化键值对设定,app将会优先采用该设定。...通常我们会在InfoPlist.strings中进行本地化的除了app的名称CFBundleDisplayName外,还有CFBundleName、CFBundleShortVersionString、
本文将介绍如何使用Objective-C语言和ASIHTTPRequest库进行Douban电影分析,包括如何获取电影数据、如何解析JSON格式的数据、如何使用代理IP技术和多线程技术提高爬虫效率,以及如何对电影数据进行简单的统计和可视化...本文将为您提供一种详细的方法,以便在Objective-C环境下进行网络爬虫和数据处理。正文1....要创建多线程任务,我们可以使用GCD(Grand Central Dispatch)库,它是一个Objective-C的并发编程库,支持同步和异步执行、串行和并行队列、分组等功能。...数据分析一旦我们获取到Douban电影数据的HTML响应,我们可以使用解析库(如TFHpple)来提取所需的信息,如电影名称、评分、导演等。...Objective-C和ASIHTTPRequest库进行Douban电影数据的采集和分析。