Повторное использование методов в нескольких классах - PullRequest
0 голосов
/ 27 октября 2010

Я только что реализовал iAds в приложении с несколькими различными UIViewControllers.. В каждом из них есть методы делегата для - (void)bannerViewDidLoadAd:(ADBannerView *)banner и - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error, которые показывают и скрывают баннер, а также метод установки, который создает баннер в течение viewDidLoad.

Я сделал это, заставив все работать в первом UIViewController, а затем скопировав код на каждый из других контроллеров, вместе с объявлениями ivar, свойствами и т. Д ...

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

Спасибо!

1 Ответ

0 голосов
/ 27 октября 2010

Я рекомендую создать функцию ac, если подклассификация не имеет смысла.

, если эта функция сопровождает другие связанные функции, поместите ее в библиотеку вместе с ее родственниками.если список становится длинным, класс мог бы быть лучшим выбором.

, если эта функция автономна и специфична для одного приложения / проекта, то просто создайте файл, который объявляет все эти нечетные биты (если они должныиспользоваться повторно в нескольких переводах).если файл битов действительно большой, вероятно, есть несколько проблем с дизайном.

некоторые люди могут порекомендовать метод экземпляра категории objc.Я вообще избегаю категорий, потому что вероятность ошибки неоправданно высока.Функции и типы C и C ++ связаны и легко удаляются, если на них нет ссылок.с категорией вы не связываете, и она и символы, используемые в методе, не должны быть удалены.

вы можете включить это в качестве метода экземпляра для вашего синглтона, если оба концептуально (или физически)) связаны.в противном случае, я рекомендую хранить их отдельно.

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