Обнародование информации объектом о себе во время выполнения.
Поддержка протокола, место в иерархии, способность отвечать на сообщение.
isKindOfClass - будет работать с объектом-получателем для класса аргумента и для производных классов от класса аргумента.
isMemberOfClass - только для класса аргумента.
respondsToSelector - имеет ли объект реализацию метода? - (void)doCommandBySelector:(SEL)aSelector {
if ([self respondsToSelector:aSelector]) {
[self performSelector:aSelector withObject:nil];
} else {
[_client doCommandBySelector:aSelector];
}
}
conformsToProtocol - реализует протокол? - (void)doCommandBySelector:(SEL)aSelector {
if ([self respondsToSelector:aSelector]) {
[self performSelector:aSelector withObject:nil];
} else {
[_client doCommandBySelector:aSelector];
}
}
Сравнение объектов
hash - два одинаковых объекта имеют одинаковый хеш
isEqual - проверяет указатели на равенство
При самостоятельном определении стоит проверить:
- равенство указателей
- совпадение классов
- совпадение свойств объектов по значению
Булевские значения - YES, NO
Комментариев нет:
Отправить комментарий