2015-03-19 4 views
0

Я делаю некоторые тесты с @compatibility_alias, и понял, что:@compatibility_alias может вызвать методы экземпляра?

С его помощью мы можем изменить название нашего класса, но компенсируя вы можете получить доступ только статические методы (+).

Мое сомнение есть: @compatibility_alias может обращаться к методам экземпляра (-)? или он ограничен только статическими методами (+)?

ответ

3

Вы не обращаетесь к методам экземпляра, используя имя класса, но используя экземпляр. Так, например, с:

@compatibility_alias BaArray NSMutableArray 

нет больше необходимости получить доступ к addObject: через BaArray чем есть через NSMutableArray. Выше, могут быть использованы в качестве:

BaArray *ba = [BaArray new]; // allocates an NSMutableArray 
[ba addObject:@42];   // adds an object to the NSMutableArray 

вызов метода экземпляра не упоминает BaArray или NSMutableArray.

Примечание. Эта функция не предназначена для «изменения имени нашего класса», но для ситуаций, когда имя класса было изменено, и есть желание использовать существующий источник, который содержит старое имя.

HTH

Смежные вопросы