iOS 静态库a文件的打包 下

来源:互联网 发布:win7 添加 网络打印机 编辑:程序博客网 时间:2024/04/29 16:29

这一节我来讲一下如何用bundle实现资源(xib、图片等)的封装和引用(上一节是偷懒的做法,估计在大神眼里很不专业,这节来点专业,哈哈....)。


第一步:建一个类库起名为HelloBundle,创建完之后,在打包项目中新建一个HelloBundleViewController.h/m/xib三个文件,拖一个UIImageView 到Xib上面,设置图片资源1.jpg(关于类库的创建的过程请参照iOS 静态库a文件的打包 上)。如下图:



第二步:加入Bundle,选中工程文件如下图,起名为ResourceBundle:


点击完Next之后如下图,看一看到多了途中的1和2:



之后再要做的事情是,见下图:



第三步:在HelloBundle.h和m文件声明实现下面函数:

- (UIViewController *) getVc

{

    //获取app资源安装目录路径

   NSString *resPath = [[NSBundlemainBundle]resourcePath]; ---------------------------------1

   

    NSString *bundlePath = [resPathstringByAppendingString:@"/ResourceBundle.bundle"];--------2

    

    //xib文件从项目资源中提取出来给m文件

    HelloBundleViewController *vc = [[HelloBundleViewControlleralloc]  initWithNibName:@"HelloBundleViewController"bundle:[NSBundlebundleWithPath:bundlePath]];----3

    

   return vc;

}


大家可以比较和之前iOS 静态库a文件的打包 中 比较一下:第1行代码意思说获取app手机根目录,第2行是在根目录下找到这个xib,第3行,我不解释你也知道,那么为什么这么写(能不能不这么写,可以,iOS 静态库a文件的打包 中介绍了),请看下图:

他们是完全是不同的target(但属于同一个项目),直接取资源是取不到的,好比你在自己家那东西不需要通知任何人,但是你在你叔叔家就不行(虽然都是一个奶奶的大家庭),xib中引用的资源就不需要这么写了,毕竟他们是在一个target下面,有点不恰当,哈哈,来看看下图:

这个是我用手机上这个项目app的目录。虽然bundle用起来专业,但是麻烦,但是因为专业,所以我信赖!


第四步:请在选择HelloBundle,我们首先选择(关于architectures和Build active Architecture Only属性设置,已经不多介绍),Command+B生成a文件。在Products文件下右击libHelloBundle.a找到这个文件。


第五步:请在选择ResourceBundle(关于architectures和Build active Architecture Only属性设置,已经不多介绍,见下图,详情参见iOS 静态库a文件的打包 上):



Command+B生成ResourceBundle.bundle文件,同样的方法找到这个文件。如下图:




第六步:创建Empty application新项目引入bundle和a文件(直接拖进去),同时在app delegate添加如下代码(参照图)

    HelloBundle *helloBundle = [[HelloBundlealloc]init];

   UIViewController *vc = [helloBundlegetVc];

    self.window.rootViewController = vc;


如下图:



最后运行如下:



这里就把a文件全部介绍完了,欢迎大家吐槽,我的Q 759448747 ios超级大群:28926427




0 0
原创粉丝点击