将方法放在单独的文件中

Gar*_*tet 4 xcode cocoa objective-c

我有一个class(MyClass),有很多方法.因此,.m文件变得非常难以阅读.我对Objective-C(来自REALbasic)相对较新,我想知道是否可以将一些方法MyClass放入不同的文件中,然后将它们包含在类中.我将如何在Xcode中解决这个问题?

Fel*_*ing 9

是的,这是可能的,幸运的是,这可以在带有类别的 Objective-C中轻松完成.


假设你有基类MyClass.

@interface MyClass : NSObject
-(void) methodA;
@end
Run Code Online (Sandbox Code Playgroud)

和相应的实施文件(这里不相关).

然后,您可以通过在新的头文件中定义新接口来创建类别:

// the category name is in parenthesis, can be anything but must be unique
@interface MyClass (extended) 
-(void) methodB;
@end
Run Code Online (Sandbox Code Playgroud)

和实施文件:

@implementation MyClass (extended)
-(void) methodB {

}
@end
Run Code Online (Sandbox Code Playgroud)

命名这些文件的通用约定是ClassToAddMethodsTo + CatgoryName,即:

MyClass+extended.h
MyClass+extended.m
Run Code Online (Sandbox Code Playgroud)

将相关功能分组到类别中并为其指定有意义的名称.


hoo*_*oop 5

在Objective-c中,您可以将一个类分为" 类别 " - 一个跨越许多文件的类.正常的面向对象方式是使用SuperClasses和SubClasses.

这几乎可以肯定是代码味道告诉你,你有一个设计问题.看到这个反模式