一.基本知识
在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。
对iPhone平台来说,iPhone官方只支持静态库联编,因此下面就介绍下iPhone中静态库的用法。
二.iPhone静态库使用
1.创建静态库
打开XCode新建一个项目,选择Library下的“Cocoa Touch Static Library”,在Classes文件夹上点右键选择“New File…”,然后在“Cocoa Touch Class”下选择“Objective-C class”,这样就可以创建Objective-C风格的源文件和头文件。
同样,也可以创建C或者C++风格的代码,在Classes文件夹上点右键,选择“New File…”,这次选择Mac OS X下的“C and C++”,就行。
然后在文件里编写具体的调用代码。
最后进行编译,就会产生一个以.a为结尾的文件,就是我们需要的静态库。同时我们也需要生成的.h头文件。
2.使用静态库
在需要调用静态库的工程的目录下通过右键点Frameworks->Add->Existing Files..添加之前创建的.a静态库文件,然后在需要调用静态库的函数的.h文件里,import进来和静态库中.m对应的.h头文件,并且声明静态库里的类:@class 类名,这样就可以使用静态库里的函数了。
3.联调静态库
如果单单以copy的方式包含进.a静态库,这样只能使用静态库,如果需要修改静态库里的函数,则需重新生成静态库,并将其重新包含进来,在开发阶段会显得比较麻烦。可以采用Xcode的Cross-Project Reference(跨项目参考)的方式解决。
首先把静态库的XCode项目整个包含进我们的当前项目(注意:不要选择Copy items to destination group's folder选项)。
接着和第二步一样也是包含进.a静态库(也要注意:不要选择Copy items to destination group's folder选项)。
这样就可以从我们当前的项目里直接打开静态库的项目,直接修改(注意:修改后编译前必须选择clean,清除原有的静态库,重新生成)。
现在发现一个简单的调用静态库的方法
framework右键点击add-->ExistingFramework-->add other 浏览静态库(.a)文件添加进来,就可以用。
参考网址:http://www.cocoachina.com/iphonedev/sdk/2010/0331/887.html
分享到:
相关推荐
Apple IOS平台 终端授权库IOS Objective-C调用示例代码 OC语言调用示例代码,静态库,Xcode8工程,仅支持64平台
Objective-C是在C语言的基础上进行扩展的,因此可以直接调用C语言的函数和库。这使得Objective-C既具有C语言的效率和灵活性,又具备了面向对象的优点。Objective-C的冗长命名规约使得代码具有描述性,降低了误解
PP防复制软件版权保护平台,Objective-C语言调用示例代码,静态库,Xcode8工程,仅支持64平台
Objective-C 是一门动态语言,它将很多静态语言在编译和链接时期做的事情,放到了运行时来处理。之所以能具备这种特性,离不开 Runtime 这个库。Runtime 很好的解决了如何在运行时期找到调用方法这样的问题。下面话...
您希望分发一个静态库。 您希望上述静态库支持 iOS 7。 您的静态库提供包含警报或操作表的 UI 流。 您还希望该静态库可用于 iOS 8 扩展。 问题: UIAlertView和UIActionSheet是NS_EXTENSION_UNAVAILABLE ,因此...
仗着自己在开源社区的地位,GCC 开发者对Apple的Objective-C语言新增的很多特性不予理睬,甚至当Apple想做的很多功能需要用模块化的方式来调用 GCC时,GCC却一直不给做。一般的公司遇到这种情况,可能都有些受不了,...
打开下载的JS包里的iOS/ShareSDKForJS/ShareSDKForJS.xcodeproj项目工程,选择ShareSDKForJS静态库运行Xcode,如图: 700px-js_doc_001.png 运行成功之后,请大家打开文件找到Build文件夹,然后进入文件中找到...
上的文档( )如何使用编译库建立项目将FoundationExtension或UIKitExtension目标添加为依赖项直接来源将文件添加到项目中CocoaPod〜> 1.7.5 访问并关注 如果您的编译器是gcc或旧的clang,请在静态库中添加“ ...
GB加载中 一个优雅、轻量级且最重要的是强大的 iOS 异步资源加载库。基本用法要异步加载资源,只需调用(您的成功和失败处理... 不要忘记导入静态库头文件(在 iOS 上): # import " GBLoading.h "高级用法您可以根
)特性支持快速检测SDK的插入体积,输入路径即可分析出该路径下的静态库体积,资源体积以及总体积,无需编译链接过程;无用类检测支持对类的继承,动态调用,自身类调用,属性和成员变量的识别;在没有符号表的情况...
用的回调函数定义为 C++ 类中的静态成员函数,然后仍然使用 C 接口来调用 GTK。如果你选择后一种方法,你可以把指向要操作的对象 3 / 258 的指针 (即所谓的 "this")作为回调函数的 data 参数。选择哪一种方法仅仅是...
您只需要调用主类OBJCIPC的静态方法。 消息和回复可以同步(阻塞)或异步发送。 基本用法 该库的基本用法是有一个额外的 MobileSubstrate 扩展,它连接到特定的应用程序以设置传入的消息处理程序。 SpringBoard ...
将视图添加到updateAsynchronously:completion:视图时,视图仅呈现一次(尽管可以通过调用setNeedsDisplay或updateAsynchronously:completion:进行更新);或动态,其将在背景上自动重绘自身尽可能多地线程化。 支持...
很简单,就一行代码,直接调用 BMAlertHud里的 静态方法即可 注意: 除了把 BMAlertHud文件夹拷贝过去加入你的工程里,还要记得把 ThirdParty文件夹也要拷贝过去加入你的工程里,因为 ThirdParty里面是我依赖的第三...