【问题标题】:C# style class extension in objective-cObjective-c 中的 C# 样式类扩展
【发布时间】:2012-04-13 14:37:52
【问题描述】:

在大量使用 C# 之后,我才开始学习 Objective-c。我非常想念的一件事是能够在一个单独的项目中编写扩展方法,我可以在我的所有项目中引用它。这是一些天真的c#:

public static bool IsShortString(this string s) {
    return s.length <= 3;
}

在 Visual Studio 中,我可以只添加一个引用,using,然后 bam myString.IsShortString() 将是一个相当无用的方法。

所以我想我想写一个静态库,但我不确定我从那里去哪里。

还有一个问题,如果我确实编写了这个静态库,我是否能够使用一个 #import 指令在库中的各种文件中使用所有方法,还是必须单独导入每个标头?

【问题讨论】:

    标签: objective-c objective-c-category class-extensions


    【解决方案1】:

    您要查找的内容称为类别,它允许您向现有类添加一些额外的方法。检查参考http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html

    您可以创建自己的工具包,这是一个包含您制作的类别的静态库。通常的做法是创建一个包含库中所有头文件的导入的头文件,因此在使用它时,您只需这样做

    #import "libName.h"
    

    此外,在创建包含类别的静态库时,将-all_load-ObjC 链接器标志包含到您的项目中也很重要。

    【讨论】:

      【解决方案2】:

      objective-c 中最接近的东西是categories

      This 也是不错的分类教程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-02
        • 1970-01-01
        • 2017-08-10
        • 2013-10-09
        相关资源
        最近更新 更多