Ответ 1
Метод self
полезен для кодирования с ключом (KVC).
С помощью KVC вы можете рассматривать объект как словарь. Вы можете получить доступ к свойству объекта, используя строку, содержащую имя свойства, например: [view valueForKey:@"superview"]
. Вы проходите цепочку свойств, используя строку, содержащую путь ключа, например: [view valueForKeyPath:@"superview.superview.center"]
.
Так как NSObject
имеет метод self
, вы можете использовать self
как ключ или путь ключа: [view valueForKey:@"self"]
. Поэтому, если вы программируете свои ключевые пути или читаете их из файла, использование "self"
в качестве ключа может позволить вам избежать написания специального случая.
Вы также можете использовать self
в предикатах, например:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self beginswith \"foo\""];
NSArray *filteredArray = [arrayOfStrings filteredArrayWithPredicate:predicate];
Я не знаю, действительно ли NSPredicate
использует метод self
(возможно, через KVC). Это, безусловно, возможно.