一、首先将资源文件打包成bundle

新建工程:File -> New -> Project... -> OS X -> Framework & Library -> Bundle

我们必须借助于OS X,因为iOS框架中没有创建Bundle的模板

填写项目名称

保存位置

其实本无需这么麻烦,bundle的本质是一个目录,我们完全可以创建一个文件夹,把需要封装的资源文件拷贝至该目录下,将其改成后缀名为bundle即可,然后就可以使用NSBundle提供的接口访问其内部的资源文件,当然,也可以通过访问普通文件目录的方法访问其内部的资源。

此处主要是考虑到有xib文件的存在,由前面的知识可知,xib是文本文件,编译后要被序列化为二进制的nib文件,使用时将nib文件反序列化,就可以正常显示界面了。而bundle本身是静态的,其内部的资源包不参与项目的编译,所以,此处必须创建工程把xib序列化为二进制的nib,否则的话,直接创建文件夹后改名就可以了。

因此一些辅助文件(红色矩形框起的部分)都不需要了,直接删除即可

有一点一定要十分十分的小心:

删除上面红色矩形框中文件时,可以完全的删除,因为这些文件都是我们自己创建的

而删除下面矩形框中的文件时,千万不能“Move to Trash”,只能"Remove References"(删除引用),因为framework是系统框架的一部分,如果删除了,下次运行时候,就会报错。我就犯过这个低级错误,从来没想过系统文件会被自己删除,所以也没往这方面去想,以至于花费了很长时间才解决了问题。

由于我们删除了plist文件,所以必须在Build Settings中删除对它的引用

同样,也要删除pch文件的引用

我们创建项目时选的是OS X中的框架,所以此处需要修改Base SDK为iOS

修改后

设置完毕,现在拷贝资源文件到项目中来

正是我们需要的两个图片文件,一个xib文件

一切就绪,按快捷键"Command + B"编译,编译成功后,Products下面的MyToolsWithAssetsA.bundle由红色变成了黑色,表示编译成功

找到生成的bundle所在的目录

查看里面的内容

打开

正是我们所需要的,xib也被转化成了nib

原文链接:http://www.cnblogs.com/mylizh/p/3971544.html

iOS 添加Resource bundle target(静态库中使用图片等资源)的更多相关文章

  1. iOS framework静态库中使用xib和图片资源详解

    一.新建bundle 前2篇文章介绍了iOS 最新framework和.a静态库制作及使用全解   iOS 工程套子工程,主工程和framework工程或.a library静态库工程联调 我现在是在 ...

  2. iOS 静态库中使用宏定义区分iPhone模拟器与真机---备用

    问题描述 一般项目中,可以使用宏定义来判断模拟器还是真机,这无疑是有效的. #if TARGET_IPHONE_SIMULATOR #define SIMULATOR 1 #elif TARGET_O ...

  3. iOS:Xcode7下创建 .a静态库 和 .framework静态库

    Xcode7 中创建静态库:.a 和 .framework 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开 ...

  4. 【iOS】配置和使用静态库

    上一篇 我们演示了了如何创建自己的静态库,最终生成多个.a文件,根据需要引用工程就可以直接使用静态库了,但是有个很麻烦的问题,模拟器用的库和真机的不是同一个,当我们切换的时候需要更换静态库,有两种方式 ...

  5. iOS项目开发常用功能静态库

    YHDeveloperTools iOS项目开发常用功能静态库 查看源码 功能方法: 1.字符检查 [NSString checkStringWithType:Email andTargetStrin ...

  6. plist文件无法打包进.a静态库中

    问题: 之前一直在做静态库的编写与维护,也一直知道静态库的图片资源是没办法打进.a中的.可是突然有个想法.由于有非常多參数的配置是在一个plist文件里的.尽管也知道这是一个plist文件,可是想想和 ...

  7. iOS 解决一个因三方静态库冲突产生的duplicate symbol的问题

    最近在开发项目时编译三方.a时出现了冲突,原因是存在duplicate symbol. <1>模拟器编译时,应用的即时通讯模块采用的三方库(容联云),和视频监控模块采用的三方库(海康威视) ...

  8. iOS开发系列--扩展--播放音乐库中的音乐

    众所周知音乐是iOS的重要组成播放,无论是iPod.iTouch.iPhone还是iPad都可以在iTunes购买音乐或添加本地音乐到音乐 库中同步到你的iOS设备.在MediaPlayer.fram ...

  9. NSClassFromString 实例话静态库中的类

    Class myClass = NSClassFromString("StaticLibyClassName"); StaticLibyClassName是从静态库中实例化一个Cl ...

随机推荐

  1. Entity Framework应用:EntityFramework DataBase First模式

    在这篇文章中讲解如何使用EF的DbFirst模式实现数据的增删改查 一.新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型: 然后点击添加 二.选择来自数据库的EF设计器,并 ...

  2. SpringBoot 集成 Mybatis 使用 Druid数据源 MySQL数据库

    思路: 1.创建项目 项目结构如下: 2.导入相应包 POM.xml文件如下: <?xml version="1.0" encoding="UTF-8"? ...

  3. Redis 学习笔记2

    数据类型: string 字符串类型      一个键最多存储512MB     1> SET :设置key对应的value,如果key存在,同名会产生覆盖         SET key va ...

  4. oozie 入门

    转自:http://blackproof.iteye.com/blog/1928122 oozie概述:oozie能干什么 oozie格式:怎么用oozie oozie执行:怎么运行oozie ooz ...

  5. Axiom3D:Ogre射线与点,线,面相交,鼠标操作3维空间.

    在第一篇网络分解成点,线,面.第二篇分别点以球形,线以圆柱,面分别以MergerBatch整合批次显示.因为整合批次显示后,相应的点,线,面不能以Ogre本身的射线来选取,因为整合后,以点举例,多个点 ...

  6. mysql 查看某个库下面某个表的所有列字段, columnName

    mysql 查看某个库下面某个表的所有列字段 select COLUMN_NAME as columnName from information_schema.COLUMNS where table_ ...

  7. 第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查

    第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作.增.删.改.查 elasticsearch(搜索引擎)基本的索引 ...

  8. Spring JDBC RowMapper接口示例

    JdbcTemplate类使用org.springframework.jdbc.core.RowMapper <T>接口在每行的基础上映射ResultSet的行.该接口的实现执行将每行映射 ...

  9. 分享一个MAC下绕开百度网盘限速下载的方法,三步操作永久生效

    相信大家都比较困惑,百度网盘客户端限速后一般只有几十K的下载速度,Windows有百度网盘破解版,但MAC的破解版似乎不存在,要提速的话,一般的做法是开超级会员(27元/月),身为程序员的我们,是不是 ...

  10. (转)BT1120接口及协议

    因为项目上用到的是 海思3536的bt1120接口对接 FPGA.项目上用到的是 1920 x 1080,60Hz.逐隔. 上图看到, BT1120的接口 有 16根 数据线 和 一根 时钟线. 下面 ...