Если ваш вопрос «какой тип« я », то ответ« это тип объекта, из которого вы его вызываете ». Например, если вы говорите о подклассе UIViewController
с именем calcRomanViewController
, тогда тип self
равен calcRomanViewController*
.
Звучит так, будто вы пытаетесь передать ссылку self
другим объектам. Один из способов сделать это - просто вызвать метод, который вы вызываете в другом классе, принять параметр соответствующего типа (например, UIViewController
).
В тех случаях, когда другому классу не нужно / не нужно точно знать, какой тип объекта будет передан, вы можете использовать универсальный тип объекта Objective-C id
. Например:
- (void) echo:(NSString *) message withDelegate:(id) delegate {...}
Вы можете сделать этот шаг дальше, объявив протокол, фактически говоря: «Мне все равно, какой объект вы мне передаете, если он реализует следующие методы». Например:
@protocol echoDelegate
- (void) echoCompleted;
@end
- (void) echo:(NSString *) message withDelegate:(id<echoDelegate>) delegate {...}