框架搭建之一------引入ASIHttp框架

来源:互联网 发布:mysql什么是事务实例 编辑:程序博客网 时间:2024/05/20 08:02

来到新公司,第一天就进入项目组,框架搭建自己做。

引入开源框架需要注意,不要从一些开源项目中,提炼他添加的 开源框架 ,比如从网上下载了一个开源项目XApp,他包含框架:SBJson,ASIHttp,AFNetWork,等,从这个项目中拷贝到自己项目中,总是有N多编译问题,主要是他对框架已经进行了修改,引用了很多自己的类,所以加到自己的项目中会很麻烦,除非自己很了解这个项目。

以下是用到的开源框架:

iOS ASI http 框架详解   ,类库下载地址: http://allseeing-i.com/ASIHTTPRequest/

如何把框架添加到自己的项目中,地址: http://zyc-to.blog.163.com/blog/static/171524002011101755450253/

添加asihttprequest框架到工程中使用  

1.下载asihttprequest

2.
把Classes里的文件,拖到XCode中
External/Reachbility也拖进去 ->这是Apple 官方用来检查网络链接是否正常的类库
3.导入框架
SystemConfiguration.framework
MobileCoreServices.framework
CoreGraphics.framework
CFNetwork.framework
libz.1.2.3.dylib
4.添加libxml2的搜索路径
xcode4->Build Settings->Search paths->Header Searche Pahts:
${SDK_DIR}/user/include/libxml2
5.再导入框架
libxml2.dylib
6.这样就可以使用了,在使用的时候,要加入适当的头文件.
NND,因为缺少导入libxml2.dylib框架,编译的时候有22个错误,花了一下午时间,各种尝试,以为是ARC的问题,但自己的设置是NO,就是没启动ARC,最后跟其他项目中的设置各种比较,发现是没导入libxml2.dylib框架,光加了搜索路径。

报错信息:

Undefined symbols for architecture i386:

  "_deflateInit2_", referenced from:

      -[ASIDataCompressor setupStream] in ASIDataCompressor.o

  "_deflateEnd", referenced from:

      -[ASIDataCompressor closeStream] in ASIDataCompressor.o

  "_deflate", referenced from:

      -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o

  "_inflateInit2_", referenced from:

      -[ASIDataDecompressor setupStream] in ASIDataDecompressor.o

  "_inflateEnd", referenced from:

      -[ASIDataDecompressor closeStream] in ASIDataDecompressor.o

  "_inflate", referenced from:

      -[ASIDataDecompressor uncompressBytes:length:error:] in ASIDataDecompressor.o

ld: symbol(s) not found for architecture i386

clang: error: linker command failed with exit code 1 (use -v to see invocation)



如果程序启动了ARC,需要对文件设置-fno-objc-arc

ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机制在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机制。简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种代码静态分析(Static Analyzer)工具。

那么在xCode中经常需要导入一些外来的代码文件,如果导入的文件使用了ARC机制而你的当前项目没有使用ARC,那么xCode会给出警告,或者报错。我们该如何处理这些问题呢:

查看ARC 是否开启,"Objective-C Automatic Reference Counting"选项为YES,表示开启。

点击项目导航文件--> 选中Targets--> 选择 Build Phases --> 展开Compile Sources

这个时候,我们看到第二列的名称为:Compiler Flags

双击你所要使用ARC的文件,并输入 -fobjc-arc

那么现在这个文件就可以在编译时使用ARC机制进行编译了。

同上,如果想让使用ARC机制的代码不使用ARC机制,只需要输入 -fno-objc-arc





原创粉丝点击