http://www.cocoachina.com/bbs/read.php?tid=78586
能在ARC下跑的ASIHTTPRequest框架(以及升了5.0,用了ARC后N多开源框架不能用的解决方案)
坑爹的ARC呀,用了ARC后几乎所有开源框架都不能用了
包括这个 网络连接最常用的框架 ASIHTTPRequest,于是我就傻乎乎的去改ASIHTTPRequest源 代码
解决了什么 release呀,类型转化呀,非本地对象不能回调呀,等等诸多 问题后终于没见红了
结果程序一跑还是挂,郁闷啊。
忽然想到ARC不是编译级的吗?而且 苹果提供那么多框架,不可能为了ARC全都改过吧
于是乎把ASIHTTPRequest源代码编译成framework,在ARC的项目中直接导入framework,果然可以用了
爽啊,这下不用担心以前的框架用不了了,都可以这么处理
下面放出ASIHTTPRequest.framework,打包的方法, 使用该框架的一个简单的样例:
framework: ASIHTTPRequest.framework.zip (209 K) 下载次数:109
样例: Sample.zip (5168 K) 下载次数:84
打包方法: http://www.cocoachina.com/bbs/read.php?tid-75680-page-1.html
导入framework后,在代码中加入 #import <ASIHTTPRequest/ASIHTTPRequestHeader.h> 就可以使用ASIHTTPRequest带来的诸多功能了
包括这个 网络连接最常用的框架 ASIHTTPRequest,于是我就傻乎乎的去改ASIHTTPRequest源 代码
解决了什么 release呀,类型转化呀,非本地对象不能回调呀,等等诸多 问题后终于没见红了
结果程序一跑还是挂,郁闷啊。
忽然想到ARC不是编译级的吗?而且 苹果提供那么多框架,不可能为了ARC全都改过吧
于是乎把ASIHTTPRequest源代码编译成framework,在ARC的项目中直接导入framework,果然可以用了
爽啊,这下不用担心以前的框架用不了了,都可以这么处理
下面放出ASIHTTPRequest.framework,打包的方法, 使用该框架的一个简单的样例:
framework: ASIHTTPRequest.framework.zip (209 K) 下载次数:109
样例: Sample.zip (5168 K) 下载次数:84
打包方法: http://www.cocoachina.com/bbs/read.php?tid-75680-page-1.html
导入framework后,在代码中加入 #import <ASIHTTPRequest/ASIHTTPRequestHeader.h> 就可以使用ASIHTTPRequest带来的诸多功能了
iOS framework 制作教程,这次不是静态包!!!
我们
使用一种变通的方法来制作 iOS framework,废话不多说,上步骤:
1.打开Xcode创建一个“ Cocoa Touch Static Library”工程,并删除现有的target. 2.右键project选择添加New Target,在弹出的窗口中找到Cocoa ,在Cocoa右侧窗口中选择“Loadable Bundle”。 注意:到这步的时候不要选择framework,应为framework是MAC OS上的,iOS是不支持的,但是iOS 支持“Loadable Bundle(cfbundle)” 3.target 上右键get Info 在Build Settings下面设置下面的5项内容: a.搜索Wrapper Extension,把默认的bundle改成framework. b.修改Mach-O Type 为Relocatable Object File. c.关闭Dead Code Stripping ,把勾去掉! d.关闭Link With Standard Libraries. e.移除所有关于“AppKit” 和 “Foundation”的参考,删除“Other Linker Flags”的所有值,并删除“GCC_PREFIX_HEADER“的值! 4.在frameworks Info.plist文件中将Bundle OS Type code的值BNDL改为:FMWK,并且在target的 get info窗口中的Properties标签栏下也将Type改为FMWK。 5.在工程中添加你的 代码。 例如:我们添加一个类 #import <Foundation/Foundation.h> @interface Help : NSObject { } - (void)show; @end #import "Help.h" @implementation Help - (void)show { NSLog(@"framework!!!"); } @end 6.在target上右键Add---New Build Phase---New Copy Headers Build Phase,此时target下面会多出一个灰色的 文件夹—Copy Headers。 7.然后将我们刚才添加的Help类的.h文件从上面拖到下面的Copy Headers中,再在该文件夹上右键—Set Role---Public. 8.从上面将所有要打进framework的.m文件拖到target下的Compile Sources文件夹里。 9.编译,如果出错,那就在 Build下面的 将“Other Linker Flags “设置为 –ObjC 、-all_load、-lxml2,不要写在一起,请一项项添加。 注意:如果编译出现大量的 错误,说明你没有删除“AppKit” 和 “Foundation”的参考, 编译后参考: 在build/Debug-iphonesimulator下面出现一个framework文件夹: 使用我们刚才制作的framework 在新的工程中导入framework 我们把刚才制作的kibernet.framework拷贝到新的工程的目录下,选择kibernet.framework文件夹 添加后的效果图 使用framework中的类: 导入头文件 ViewDid Load中测试一下: 输出结果:
[ 此帖被kibernet在2011-09-22 16:30重新编辑 ]
|
附件:
Kibernet.zip (13 K) 下载次数:111
附件:
TestFramework.zip (20 K) 下载次数:89
|