我只是在用C#获得相当多的经验后才学习objective-c。我非常想念的一件事是能够在一个单独的项目中编写扩展方法,我可以在所有项目中引用它。这是一些天真的c#:
public static bool IsShortString(this string s) {
return s.length <= 3;
}
在Visual Studio中,我只能添加引用using
,而bam myString.IsShortString()
将是一种相当无用的方法。
所以我想我想写一个静态库,但我不知道我要从哪里开始。
另外一个问题,如果我编写这个静态库,我将能够使用一个#import
指令在库中的各个文件中使用所有方法,还是我必须单独导入每个头?
答案 0 :(得分:1)
objective-c中最接近的是categories。
This也是一个很好的类别教程。
答案 1 :(得分:1)
您要查找的内容称为“类别”,它允许您向现有类添加一些其他方法。检查参考http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html
您可以创建自己的工具包,这是一个包含您所做类别的静态库。通常的做法是创建一个头文件,其中包含lib中所有头的导入,所以在使用它时,你只需要
#import "libName.h"
此外,在创建包含类别的静态库时,将-all_load
和-ObjC
链接器标志包含在项目中非常重要。