iSimulate автоматические крючки - PullRequest
0 голосов
/ 09 марта 2010

Мне было интересно, знает ли кто-нибудь, как iSimulate автоматически регистрирует / перехватывает себя в отлаженном приложении iDevice? Это так же просто, как включение статической библиотеки (и несколько фреймворков), и это просто работает. Нет методов или функций для вызова. Как это возможно?

1 Ответ

1 голос
/ 10 марта 2010

Краткий ответ: используя категории в Objective-C, вы можете расширить или дополнить любой класс в системе, включая базовые классы и сам NSObject. (Например, в «Ruby Patching» в Ruby.)

Фактическое общение - это, скорее всего, передача, посылка посылок, которые не ожидают ответа. Когда вы запускаете ваше приложение, оно просто начинает перехватывать эти пакеты. Так что это приложение-симулятор, которое подключается к потоку iSimulate, а не к iSimulate, каким-то образом «проникающим» в ваше приложение.

Взгляните на проект с открытым исходным кодом Симулятор акселерометра . Вы также можете легко распространить его на трансляции, и в основном дублировать то, что делает iSimulate. И вы узнаете об изящной стороне Objective-C.

...