Heres мой сценарий. Большинство моих сетевых вызовов теперь должны иметь ключ api, вставленный в поле заголовка при выполнении запроса. Так что я думал, что могу сделать, это сделать категорию NSMutableUrlRequest. Переопределите один из инициаторов. Тогда в этом одном инициализаторе я мог бы установить ключ api в качестве поля заголовка. Поэтому каждый раз, когда я создаю объект NSMUTABLEURLREQUEST, поле заголовка, которое мне нужно, уже установлено. Если вы посмотрите на яблочный документ здесь NSMutableUrlRequest, вы увидите, что у объекта есть 4 инициализатора 2 класса и 2 метода экземпляра. Ill список моих вопросовПереопределение статического инициализатора NSMutableUrlRequest?
- Какую функцию инициализатора я должен переопределить для выполнения моей задачи? Класс или экземпляр?
- Как я могу переопределить его? Либо если это инициализатор экземпляра или класса?
- Это даже хороший способ сделать это? или я должен просто подклассировать его и переопределить его так?
Мой код написан для когда-то сейчас и хорошо, я не хочу возвращаться и вставлять ключ api в каждый отдельный запрос, потому что хорошо их много. В некотором смысле, я думаю, что это лучший подход к нему, потому что просто нужно установить apiKey в одном месте и не так много места, что уменьшает вероятность ошибок программирования. Спасибо вам за помощь.
P.S. Даже если это не хороший способ завершить это, может кто-нибудь еще показать мне, как работает инициализатор класса? Как и то, что основной код, чтобы я мог генерировать свои собственные инициализаторы статического класса. Каждый раз, когда я пытаюсь переопределить метод класса, я не могу определить, какой тип будет возвращен.
Спасибо за вашу помощь
Может вы не цикл через процесс создания с вашими желаемыми заголовками, вставляя их? for (x в заголовках) {создать запрос с x} - что-то в этом роде? –
Нет, потому что все запросы не входят в один класс. Мне просто нужно подклассировать NSURLRequest и добавить ключ api. Это исправит мою проблему, и я просто прочитаю здесь на этой [веб-странице] (http://rypress.com/tutorials/objective-c/categories), что ее не очень хорошая практика для переопределения методов в категории. Поскольку, если вы создаете другую категорию из той же цели класса c не знаете, какую функцию вызывать – Esko918