@interface多重继承?

Sim*_*iwi 1 inheritance interface objective-c ios

我在我的应用程序中使用Objective-C,我对@interface声明中的多重继承有疑问.

这就是我现在看起来的样子:

#import "cocos2d.h"

    @interface UIViewController (Save)

    - (void)saveImage:(UIImage*)image:(NSString*)imageName;
    - (void)removeImage:(NSString*)fileName;
    - (UIImage*)loadImage:(NSString*)imageName;

    @end

    @interface CCLayer (Save)
    - (UIImage*)loadImage:(NSString*)imageName;
    - (BOOL)checkExists:(NSString*)thePath;
    @end
Run Code Online (Sandbox Code Playgroud)

所以你可以看到,我已经两次声明了loadImage方法.我不想这样做.这也意味着我必须在我的.m中使用相同的代码两次.

有没有办法将UIViewController和CCLayer混合到1 @interface中,这样我就不必多次声明它了?

谢谢!

jus*_*tin 5

  1. ObjC没有多重继承.
  2. 你不希望在同SEL一个类中有多个相同的定义.
  3. 你可以声明(并采用)一个协议.那么你将loadImage:@interface声明采用的方法中定义method().您也可以在虚拟类别中声明它,然后loadImage:在另一个@implementation范围内定义.
  4. 另一种方法是组合 - 基本上,你可以在类中添加一个类或协议实例变量,让它执行工作.如果这是pubic接口,那么你也可以提供一个访问器,或者你可以根据需要包装它.如果你的50个方法@interface可以在逻辑上细分,这是值得考虑的.