В общем, вся идея классов Obj-С крутится вокруг специальной таблицы, которая имеет грубо говоря имя метода и указатель на обработчик. В режиме выполнения при каждом вызове эта таблица обходится и ищется метод по имени. Система гибкая, но медленная. Хотя пишут, что все сделано, чтобы работало моментально. И не имя хранится, а хеш (селектор) и кеш используют. Эту таблицу можно модифицировать при помощи категорий. Селектор может выступать как отдельный тип. Грубо говоря, селектор-указатель на функцию (метод класса) можно хранить в поле другого класса и вызывать его, минуя операцию посылки сообщения с обходом таблицы и вытекающими расходами ресурсов.
No comments:
Post a Comment