http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html
iOS中的资源种类包括:nib文件,字符串资源,图像(images),声音(Sounds),视屏(Movies),属性列表(plist).
iOS支持设备特有的资源,资源被命名为如下的格式:<basename><device><filename_extension>
这里,basename指资源的原始名字,也是我们在代码中引用的名字。
filename_extension是资源文件的扩展名。<device>是如下两者之一:~iphone,~ipad。
对于以上的内存,举例说明,代码如下:
UIImage * anImage = [UIImage imageNamed:@"MyImage.png"];
在iphone/ipod上,如果MyImage~iphone.png存在,则加载;否则去加载MyImage.png.
在ipad上,如果MyImage~ipad.png存在,则加载;否则去加载MyImage.png.
这个机制就方便了我们去写universal类型的应用程序,使得我们不必在代码中根据设备类型,加载不同名字的资源文件。
搜索资源时,按如下优先级顺序:
1、Global(nonlocalized) resources
2、Region-specific resources(based on the user's region preferences) 这个只在MAC OS X上有效
3、Language-specific resources(based on the user's language preferences)
4、Development language of the bundle(as specified by the CFBundleDevelopmentRegion in the bundle's Info.plist file)
由于全局资源的优先级高于特定语言的资源,一个资源的全局资源和本地化的版本不能同时存在,否则本地化的版本将永远没有机会加载。
Nib文件
和nib文件想连接的Action Method,不必在头文件中声明,可以在.m文件中声明为私有的,这是因为XCode解析的是.m文件。
字符串资源
字符串资源文件,一般是通过在代码中使用宏,然后再使用命令行工具genStrings来产生的。
这些宏是:
NSLocalizedString(key,comment)
NSLocalizedStringFromTable(key,tableName,comment)
NSLocalizedStringFromTableInBundle(key,tableName,bundle,value,comment)
NSLocalizedStringWithDefaultValue(key,tableName,bundle,value,comment)
其背后实质上都是调用的NSBundle的localizedStringForKey:value:table:这个方法。
使用这些宏时,会用到一些额外的参数,这些参数是被genstrings工具来使用的,其说明如下:
Key:该字符串用来查找相应的值,这个串中一定不能包含扩展的ASCII字符集中的字符。
TableName:key所在的字符串文件的名字。如果没有提供该参数,则默认为Localizable.strings。如果提供,则不要加末尾的".strings"。
Default value:与给定的key相关联的默认值,如没有指定,则genstrings使用key字符串作为初始值。默认值里面可以包含扩展的ACSII字符。
Comment:注释性的文字。有了这些信息,翻译人员就会明白气用途。getstrings把这些信息写入生成的文件中,格式为C风格的注释。
Bundle:一个NSBundle对象,或是CFBundleREf类型,用于指明包含字符串文件的bundle。可以据此来加载本app之外的资源。
关于如何在字符串中格式化,或是插入特殊字符,请Resource Programming Guide中的String Resources部分。
图像,声音和视频资源
要支持视网膜显示屏的话,将高清的图片名字后面加@2x,并将这些图片放在同一位置。
属性列表
对于app的配置文件Info.plist,如果想读取里面的值,可以用NSBundle类的如下函数:
objectForInfoDictionaryKey:
infoDictionary
分享到:
相关推荐
iOS技术概述是一份详细的技术指南,不仅为初学者提供了入门知识,也为有经验的开发者提供了深入研究的资料,涵盖了iOS开发的各个方面,从基础架构到高级功能,从工具使用到框架参考,是iOS开发者的宝贵资源。
总之,这份iOS技术概述中文版.pdf是学习和理解iOS开发的宝贵资源,它不仅覆盖了基本概念,还深入到高级特性,为开发者提供了全面的技术指导。通过学习这份文档,开发者可以更好地掌握iOS平台的开发技巧,从而创作出...
### iOS概述 #### iOS简介 iOS 是由苹果公司开发的操作系统,主要运行在 iPhone、iPod touch 和 iPad 等移动设备上。该系统不仅管理着设备的硬件资源,还为本地应用程序提供了必要的技术支持和运行环境。对于初学者...
#### 一、iOS开发概述 iOS开发是指为苹果公司的移动操作系统iOS创建应用程序的过程。iOS操作系统主要用于iPhone、iPad以及iPod Touch等设备。为了开发iOS应用,开发者通常会使用两种主流的编程语言:Swift和...
在iOS开发领域,掌握必要的资源和流程至关重要。iOS应用程序开发主要使用Swift编程语言,结合Xcode集成开发环境(IDE)进行。以下是对标题和描述中提及的知识点的详细阐述: 一、Swift编程语言: Swift是Apple于...
根据提供的信息,我们可以总结并提炼出以下与iOS开发相关的知识点: ### iOS成长之路2017夏v1.0 ...这些知识点涵盖了iOS开发的多个重要方面,对于希望深入学习iOS开发的程序员来说是非常有价值的资源。
根据所提供的描述信息,需要注意的是,这些IOS资源来源于网络,并非由发布者自行创建或拥有版权。因此,明确指出了以下几点: 1. **版权归属**:所有提到的IOS资源版权均归思科公司所有。 2. **合法使用**:建议用户...
《iOS 5代码合集1》是一份专为初学者设计的编程资源,涵盖了iOS 5开发中的核心技术和实践案例。这份合集通过多个章节的细分,帮助学习者逐步掌握iOS应用开发的基础与进阶技能。以下是各章节的详细内容概述: 1. **...
AssetsLibrary框架是iOS开发中一个专门用来操作相册相关资源的框架,从iOS4到iOS9之间都是非常常用的一个框架。随着iOS9之后,系统系统了Photos框架代替了AssetsLibrary框架,但是AssetsLibrary框架依然可以使用。 ...
### 一、iOS游戏开发概述 iOS游戏开发是指在苹果公司的iOS操作系统上进行游戏应用的开发工作。随着移动互联网技术的发展,iOS游戏已经成为一个巨大的市场。为了帮助开发者更好地理解和掌握iOS游戏开发的技术要点,...
- **知识点概述**:iOS开发过程中,锁机制是实现多线程同步的重要手段之一。常用的锁机制包括互斥锁(`@synchronized`)、读写锁、NSLock、NSRecursiveLock等。 - **哪个性能最差**:通常情况下,互斥锁`@...
书中还提供了对iOS 7架构和SDK框架的概述,包括了从iPhone OS演进到iOS 7之后的变化。为了构建应用,开发者需要熟悉iOS 7的架构和使用它的各种框架。UIKit、MapKit、MessageUI、AddressBookUI、GameKit、iAd等框架都...
根据提供的文件信息,以下是从标题、描述、标签以及部分内容中提取和扩展的相关iOS知识点: ...无论是对于想要踏入iOS开发领域的新人,还是希望巩固基础知识的老手来说,都是一份非常宝贵的学习资源。
一、Cocos2d概述 Cocos2d最初是为Python设计的游戏引擎,后来发展出多个版本,包括Cocos2d-iOS,专为Apple的iOS设备量身打造。这个框架基于Objective-C,现在也有Swift版本,支持最新的iOS开发环境。Cocos2d-iOS以其...
本篇文章将围绕“iOS 12.0 真机包”这一主题,详细阐述其在Xcode中的作用以及如何进行有效集成,帮助开发者更好地理解和运用这一关键资源。 一、iOS 12.0 真机包概述 iOS 12.0是苹果公司推出的操作系统版本,带来...
1. iOS蓝牙开发概述: - iOS设备支持的蓝牙技术规范为Bluetooth 4.0,具备低功耗、高数据吞吐量的特点。 - 通过使用Core Bluetooth框架,开发者可以编写应用程序来扫描蓝牙设备、连接设备、传输数据以及监控连接...
### IOS-电子书知识点概述 #### 一、iOS学习资源基础教程 本书旨在为iOS初学者提供一套完整的入门指南,内容覆盖了从基础知识到实践应用的各个方面,是iOS开发新手的理想选择。 #### 二、iOS基础知识与编程环境 ...