Наследование от двух классов в objective C [дубликат]
На этот вопрос уже есть ответ здесь:
У меня есть два класса. Я определил в нем некоторые методы. Мне нужно получить эти методы из этих двух классов в одном классе без переопределения. Objective C не поддерживает множественное наследование, так как же этого добиться?
2 ответов:
Не используйте наследование, используйте композицию.
#import "classname1.h" #import "classname2.h" @implementation classname3 -(id)method1 { id val1 = [classname1 methodToUse]; id val2 = [classname2 otherMethodToUse]; return val1 + val2; } @end
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
Comments