Цель C - Можно ли вызвать метод категории из другой категории того же типа?

Я хотел бы знать, действительно ли реально вызвать метод категории в другой категории того же типа. Я пытался сделать это, но это не похоже на работу. Я хочу знать, что это правильный путь или, по крайней мере, это возможно?

Например:

Файл CategoryA

@implementation UIImage (UIImage+CategoryA)

-(void)doThis {
    NSLog(@"Something....");
}

Файл CategoryB

#import "UIImage+CategoryA.h"

@implementation UIImage (UIImage+CategoryB)

-(void)someMethod {
    [self doThis]; // Can I do this?
}


Любые обсуждения / ответы / идеи приветствуются.

1 ответ

Решение

Категория добавляет методы к исходному классу. Это Objective-C, поэтому нет концепции управления доступом: если они существуют, они доступны для всех. Поэтому любой, кто имеет указатель на экземпляр класса и знает категорию, может их вызвать. Это включает в себя методы, реализованные в других категориях того же класса.

Так что да, это возможно.

Другие вопросы по тегам