`
反求诸己
  • 浏览: 535280 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

ios资源概述

 
阅读更多

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自动布局进阶系列视频教程-01自动布局概述-附件资源

    IOS自动布局进阶系列视频教程-01自动布局概述-附件资源

    QIYU_iOS_SDK:网易七鱼 iOS SDK

    概述 网易七鱼 iOS SDK 是客服系统访客端的解决方案,既包含了客服聊天逻辑管理,也提供了聊天界面,开发者可方便的将客服功能集成到自己的 App 中。iOS SDK 支持 iOS8 以上版本,同时支持 iPhone、iPad,同时支持竖...

    gop-ios-sdk:GTOnePass iOS SDK。 http

    概述及资源 环境需求 条目 资源 开发目标 兼容 iOS7, 推荐 iOS8+ 开发环境 Xcode 8.0 系统依赖 Webkit.framework, JavascriptCore.framework 产品依赖 SDK 三方依赖 无 相关开发资料 条目 资源 SDK 下载 接口文档 ...

    程序员专用简历模板(包括Java、PHP、iOS、Android和Web开发)

    这份资源提供了多种程序员专用简历模板,涵盖了各种领域,包括Java、PHP、iOS、Android和Web开发。每个模板都经过精心设计,旨在帮助程序员创建引人注目的简历,突出其技能和经验。这些模板包括关键部分,如个人信息...

    TomCat By Object-C.zip

    正如您所看到的,用Object-C语言编写的阅读起来更像是自然语言,而C++更像是机器语言。如果您习惯了Object-C的语法,学习一个新的工程或者学习第三方的...想获取更加详细的信息,请参考Mac 技术概述和IOS 技术概述。

    Mpush Client Object-C.zip

    正如您所看到的,用Object-C语言编写的阅读起来更像是自然语言,而C++更像是机器语言。如果您习惯了Object-C的语法,学习一个新的工程或者学习第三方的...想获取更加详细的信息,请参考Mac 技术概述和IOS 技术概述。

    leetcode递归专题-Pursuit-Core-iOS-DSA-Practice:SwiftDSA练习

    递归专题追求-核心-iOS-DSA-实践 Swift 数据结构和算法以及练习。 周 第 1 周:大 O 表示法、递归、排序概述、ADT 概述、DSA 评估 #1 第 2 周:字符串、数组 第 3 周:字典、集合、节点、链表、堆栈、队列 第 4 周:...

    First-iOs-Project

    我们将使用Xcode和Apple的预构建iOS组件设计应用程序,还将从互联网上获取的一些图像资源或将自己的图片和图像整合到应用程序中。 最后,我们将创建一个自定义应用程序图标以放置到我们的应用程序中,并在模拟器和...

    ios-nd-persistence-Mooskine

    该存储库包含有关Udacity的iOS持久性和核心数据课程的资源。 概述 iOS Persistence和Core Data使用Apple的框架在设备上本地存储数据来教授常见的持久性技术。该课程包括: PickYourPitch,它具有较小的用户首选项,...

    sbx_multi_ios:与DevNet Multi-IOS沙箱一起使用的示例代码,示例和资源

    与一起使用的示例代码,示例和资源 预约沙盒实验室 您可以预订沙盒实验室。 在预订过程中,您可以选择“无”进行仿真,因为在安装过程中我们将启动所需的拓扑。 启动VIRL服务器和您的devbox大约需要15分钟。 稍等...

    iOS开发之AssetsLibrary框架使用详解

    AssetsLibrary框架是专门用来操作相册相关资源的一个框架,其是iOS4到iOS9之间常使用的一个框架,在iOS9之后,系统系统了Photos框架代替了AssetsLibrary框架,但是AssetsLibrary框架依然可以使用,并且其结构和设计...

    BoniNotifySDK-iOS:适用于iOS设备的Boni Beacon通知SDK

    概述 BoniNotifyManager是框架的主类。 它包含startNotify和stopNotify方法。 安装 在构建阶段,将BoniNotifySDK.framework文件添加到链接库。 另外,向您的项目添加以下框架: 加速框架 AdSupport.framework ...

    OBPKit-iOSX:轻松访问提供Open Bank Project API的服务器。 OBPKit可以快速集成到您的iOS应用程序或OSX应用程序中,并通过Open Bank Project API轻松进行会话授权和资源编组。

    它负责授权过程,一旦用户授予了您的应用访问其资源的权限,它就会为您提供帮助,以通过API封送资源,或者如果您想自己滚动,则可以使用OBPKit将授权标头添加到您自己形成的请求中。 您可以查看HelloOBP-iOS和...

    GADI:适用于iOS的Google Analytics(分析)依赖项注入

    加迪概述GADI(Google Analytics(分析)依赖项注入)的缩写可以从外部在iOS上通过Google Analytics(分析)注入跟踪处理跟踪过程像AOP一样嵌入,使用AOP库的作为内部过程如何开始播客文件在podfile和pod install...

    SwiftyPress:用于WordPress集成的iOS框架

    SwiftyPress SwiftyPress是一个Swift框架,用于使用REST API将WordPress 4.7+集成到本机iOS应用程序。 它提倡“ ,可以在简要概述。安装迅捷软件包管理器.package(url: "git@github.com:ZamzamInc/SwiftyPress.git",...

    精品Object-C语言教程文档项目资源,分享出来.zip

    概述 本工程主要是利用iOS 的Objective-C开发的技术要点汇总; 涵盖了开发中踩坑的原因,以及填坑的技术分享; 抛砖引玉,取长补短,希望能够提供一点思路,避免少走一些弯路。 使用 Cocoapods安装教程 本Demo利用...

    java获取地磅称重数据源码-awesome-careers:职业转换者的工具、资源和计划:oncoming_fist:

    java获取地磅称重数据源码 让我们面对现实:几乎每个人都讨厌他们的工作。...概述 iOS 工程师为产品编写移动应用程序,包括 iPhone、iPod Touch 和 iPad。 iOS开发者编写的软件可以在多种操作系统上使用,比如iOS、i

    VR/AR开发的概要分析和介绍

    以下是对VR/AR开发相关资源的简要概述: 开发工具与平台 Unity3D 是开发者构建VR/AR应用的主流选择,它提供了一个全面且灵活的跨平台开发环境,内含强大的3D图形渲染引擎、物理模拟功能以及丰富的交互组件,便于...

Global site tag (gtag.js) - Google Analytics