IOS源码封装成.bundle和.a文件,以及加入xib的具体方法,翻遍网络,仅此一家完美翻译!! IOS7!!(3) 完美结局

以上翻译有误解之处,现在简单做法如下:

经过深入研究,才感觉明白了内部机制,现在简单介绍于下,主要步骤:
xcode5 创建库项目,删掉测试文件和默认创建的类,添加viewController类带xib
在项目Targets下点项目--built Phrases--copy files中设置subpath:include   把项目中的.h文件都拖过来
在项目target下面点击Add Target,创建bundle,命名规则:项目是MyLib,则bundle就起名MyLibResources
创建一个Bundle target就行,其他自动生成的文件都删掉,在bundle的target的BuiltSetting中搜索plist,删掉info.plist File下的路径.在built Phases下的copy bundle..下添加xib,图片等资源
在build setting选项卡中改Base SDK为latest iOS(command + B 编译一下,如果不编译,后面可能会出错)

创建主工程,把lib工程复制到主工程根目录下面,然后右击项目添加到项目
在项目target下的Built Phases下的:托.a文件到Link Binary with..托.bundle文件到copy bundle…
然后在EditScheme中的Build添加这俩文件就OK了.下一步就是写代码了,前面已经介绍.

总结:
lib:托.h    bundle:托xib,改sdk,删plist
main:  link  a和copy bundle;然后editScheme,一切OK

代码

- (id)init {
    NSBundle *bundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"MyLibResources" withExtension:@"bundle"]];
    if ((self = [super initWithNibName:@"MyViewController" bundle:bundle])) {
    }
    return self;
}

MyViewController *viewController = [[MyViewController alloc] init];
    self.window.rootViewController = viewController;

上一篇:java – 在空对象引用上调用虚方法’double android.location.Location.getLatitude()’时出错


下一篇:COGS738 [网络流24题] 数字梯形(最小费用最大流)