2

私は2つのクラスを持っています。その中にいくつかのメソッドを定義しました。再定義せずに、単一のクラスでこれらの 2 つのクラスからこれらのメソッドを取得する必要があります。Objective C は多重継承をサポートしていません。どうすればこれを実現できますか?

4

2 に答える 2

3

継承を使用せず、合成を使用してください。

#import "classname1.h"
#import "classname2.h"

@implementation classname3

 -(id)method1
 {
     id val1 = [classname1 methodToUse];
     id val2 = [classname2 otherMethodToUse];
     return val1 + val2;
 }
@end
于 2013-03-05T04:47:25.730 に答える
1

Objective-C は多重継承をサポートしていません。クラスのインスタンスを作成し、新しいクラスでそれらのメソッドにアクセスできます

@interface class3
{
   class1 *c1;
   class2 *c2;
}

およびアクセス方法

[c1 yourMethod];
[c2 yourMethod];

http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocolsで説明されているように、デリゲート メソッドを作成して他のクラスに実装することにより、プロトコルを使用して複数のクラスからメソッドにアクセスすることもできます。.html

于 2013-03-05T05:00:26.507 に答える