新闻资讯
NEWS

新闻资讯

最专业的美发工作室,让您的美丽从头开始

“安博app”深入理解iPhone静态库

时间:2023-12-13 00:51:03
本文摘要:在实际的编程过程中,一般来说不会把一些公用函数做成函数库,可供其它程序用于,一则托做了代码的适配;二则托做了核心技术的保密程度。

在实际的编程过程中,一般来说不会把一些公用函数做成函数库,可供其它程序用于,一则托做了代码的适配;二则托做了核心技术的保密程度。所以在实际的项目研发中,常常不会用于到函数库,函数库分成静态库和动态库两种。和多数人所熟知的动态语言和静态语言一样,这里的所谓静态和动态是比较编译器期和运营期的:静态库在程序编译器时会被链接到目标代码中,程序运行时将仍然必须改为静态库;而动态库在程序编译器时并会被链接到目标代码中,只是在程序运行时才被写入,因为在程序运行期间还必须动态库的不存在。

  iPhone官方只反对静态库联编,本文就以静态库为事例介绍iPhone中静态库的明确用法。在实际的研发过程中,有可能在项目设计阶段把一些功能比如图形界面引擎、网络通讯引擎等都规划到适当的函数库中。  关上XCode新建一个项目,自由选择Library下的CocoaTouchStaticLibrary并命名为FirstLibrary。

这个新建的静态库项目下除了FisrtLibrary_Prefix.pch外没任何程序文件,在Classes文件夹上点右键自由选择NewFile,然后在CocoaTouchClass下自由选择Objective-Cclass,笔者在这里再行创立Objective-C风格的源文件和头文件并命名为function,可以看见在Classes目录下产生了function.h和function.m文件。接着在头文件里输出以下内容:  #import《Foundation/Foundation.h》  @interfacefunction:NSObject{  }  -(int)getMax:(int)ab:(int)b;  -(int)getMin:(int)ab:(int)b;  @end  构建文件function.m内容如下:  #importfunction.h  @implementationfunction  -(int)getMax:(int)ab:(int)b  {  returna》a?a:b;  }  -(int)getMin:(int)ab:(int)b  {  returna《b?a:b;  }  @end  可见,笔者的这个静态函数库的功能很非常简单,就是获取了两个提供最大值和最小值的函数。但是有可能大多数现存的函数库的源码都是C或者C++格式的,没关系,iPhone对C/C++反对的也很好。在Classes文件夹上点右键,自由选择NewFile,这次自由选择MacOSX下的CandC++,之后自由选择CFile并命名为TestCFunction,可以看见在Classes目录下产生了两个文件TestCFunction.h和TestCFunction.c,TestCFunction.h如下:  #ifndefTestCFunction_H_  #defineTestCFunction_H_  voidswapValue(int*a,int*b)  {  inttemp=0;  temp=*a;  *a=*b;  *b=temp;  }  #endif  TestCFunction.c文件内维持为原貌。

  自此,这个静态函数库早已撰写完,尽管很非常简单,但是包括了Objective-C风格和C风格的源代码文件在内,编译器这个程序不会看见在Products目录下产生了取名为libFirstLibrary.a的静态库文件。


本文关键词:安博app

本文来源:安博app-www.yonghehui.cn

Copyright © 2005-2023 www.yonghehui.cn. 安博app科技 版权所有 备案号:ICP备34372483号-3