来到新公司,第一天就进入项目组,框架搭建自己做。
引入开源框架需要注意,不要从一些开源项目中,提炼他添加的 开源框架 ,比如从网上下载了一个开源项目XApp,他包含框架:SBJson,ASIHttp,AFNetWork,等,从这个项目中拷贝到自己项目中,总是有N多编译问题,主要是他对框架已经进行了修改,引用了很多自己的类,所以加到自己的项目中会很麻烦,除非自己很了解这个项目。
以下是用到的开源框架:
1.下载asihttprequest
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是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