Сервисная функция для NSInvocation - PullRequest
1 голос
/ 02 февраля 2010

NSInvocation, похоже, является одной из худших функций в Какао, поэтому я решил проверить, написал ли кто-нибудь рецепт, чтобы упростить его использование. Я нашел рецепт в блоге Мэтта Галлахера . Теперь, чтобы сделать это, он использовал довольно хакерские приемы.

  1. Вы бы порекомендовали использовать этот код или эта методика слишком часто приводит к ошибке, которую трудно отладить?
  2. Если нет, то что бы вы порекомендовали вместо этого?

Ответы [ 2 ]

2 голосов
/ 02 февраля 2010

Я использовал этот подход NSInvocation в некоторых продуктах для iPhone и Mac. Он определенно использует несколько странных техник, но это не хрупкий взлом, во что бы то ни стало: он надежен и примерно так же быстр, как вероятно создание NSInvocation.

У меня кратко была ошибка сохранения счетчика в коде (давно исправленная), но отладить счет сохранения здесь не сложнее, чем где-либо еще.

Конечно, мое мнение полностью предвзято.

0 голосов
/ 02 февраля 2010

Простейшая служебная функция будет иметь следующий интерфейс

+ (id)retainedInvocationWithTarget:(id)target invocationOut:(NSInvocation
**)invocationOut args:NSDictionary;

Это будет иметь тот недостаток, что nil не может быть передан в качестве аргументов. Я думаю, что должно быть лучшее решение

ОБНОВЛЕНИЕ: NSNull может использоваться в словарях вместо nil

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...