辅助函数在Cocoa中

时间:2008-12-15 07:58:12

标签: objective-c cocoa

在Obj-C类中合并辅助/实用程序函数的标准方法是什么?

即。通用功能,在整个应用程序中使用,并由超过1个类调用。

Obj-C方法是否存在于类之外,或者它是否需要是C函数才能产生这种行为?

3 个答案:

答案 0 :(得分:24)

我会将类似的函数分组为辅助类中的静态方法。然后可以使用classname而不是实例名称来调用它们。静态方法用+而不是通常的定义 - 。

像这样:

@interface HelperClass: superclassname {
    // instance variables - none if all methods are static.
}

+ (void) helperMethod: (int) parameter_varName;

@end

这将被称为。

[HelperClass helperMethod: 10 ];

由于这是静态的,所以不要初始化/分配类。这具有像Helper功能一样清晰分组的优点。您可以使用独立的C函数,但随着您的应用程序变大,它可能会成为一个正确的混乱!希望这会有所帮助。

答案 1 :(得分:20)

我不明白为什么人们会避免创建功能。 Objective-C是C的超集,这意味着C是它的一部分。而且,它完全集成 - 它们之间没有隔离墙。

创建功能!没关系!基金会做到了。应用程序套件做到了。核心动画做到了。核心媒体做到了。

我认为没有理由不这样做。

答案 2 :(得分:7)

Objective-C中有很多选项。首先,由于Obj-C是C的严格超集,因此您可以在单独的模块(源文件)中定义所有库函数,并愉快地从您已有的任何Obj-C对象/代码中调用它们。如果您创建一个obj-c源文件(.m文件),则可以回调/使用对象。

如果你的泛型函数在逻辑上操纵其他已建立的对象(例如,对NSString进行操作),你可以使用类别来绘制现有类的函数(这是有意义的)。

最后,正如Tony指出的那样,您可以使用静态方法创建类(尽管我个人喜欢这个选项)。我倾向于使用一两个混合......在适当的地方添加类别,并为其他人使用标准函数。我通常只创建一个新类,设计一个类是有意义的。