В чем разница между этими методами?
Разница между isEqualTo: и isEqual:
Ответ 1
isEqual: является частью протокола NSObject и предназначен для сравнения объектов.
isEqualTo: является частью инфраструктуры поддержки Cocoa AppleScript (в частности, NSComparisonMethods, что позволяет AppleScript сравнивать Cocoa объекты). Он обычно такой же, как isEqual:, но может быть переопределен, если вы хотите, чтобы равенство работало по-разному внутри и в script.
Ответ 2
isEqualTo: является частью неофициального протокола NSComparisonMethods, который также содержит методы, такие как isGreaterThan: и isNotEqualTo:, и используется для поддержки скриптов. А:
Реализация по умолчанию для этого метода, предоставленная NSObject, возвращает YES, если сообщение isEqualTo:, отправленное на тот же объект, вернет YES.
Поэтому, отправляя это сообщение в NSObject (или любой подкласс, который не переопределяет его), вы получите то же поведение, что и isEqual:, однако вместо этого вы должны использовать isEqual:.