在Obj-C类中合并辅助/实用程序函数的标准方法是什么?
即通用功能,在整个应用程序中使用,并由多个类调用.
Obj-C方法是否可以存在于类之外,或者它是否需要是C函数才能具有这种行为?
我会将类似的函数分组为辅助类中的静态方法.然后可以使用classname而不是实例名称来调用它们.静态方法用+而不是通常的 - 来定义.
像这样:
@interface HelperClass: superclassname { // instance variables - none if all methods are static. } + (void) helperMethod: (int) parameter_varName; @end
这将被称为这样.
[HelperClass helperMethod: 10 ];
因为这是静态的,所以不要初始化/分配类.这具有像Helper功能一样清晰分组的优点.您可以使用独立的C函数,但随着您的应用程序变大,它可能会成为一个正确的混乱!希望这可以帮助.
托尼
我不明白人们为什么要避免创建功能.Objective-C是C的超集,这意味着C是它的一部分.而且,它完全集成 - 它们之间没有墙.
创建功能!没关系!基金会做到了.应用程序套件做到了.核心动画做到了.核心媒体做到了.
我认为没有理由不这样做.
Objective-C中有许多选项.首先,由于Obj-C是C的严格超集,因此您可以在单独的模块(源文件)中定义所有库函数,并愉快地从您已有的任何Obj-C对象/代码中调用它们.如果创建obj-c源文件(.m文件),则可以回调/使用对象.
如果您的泛型函数在逻辑上操纵其他已建立的对象(例如,对NSString进行操作),则可以使用类别在已有的类上绘制函数图形(这是有意义的).
最后,正如Tony指出的那样,您可以使用静态方法创建类(尽管我个人最喜欢这个选项).我倾向于使用一两个混合......在适当的地方添加类别,并为其他人使用标准函数.我通常只创建一个新类,设计一个类是有意义的.