Вопрос о синглетонах в Cocoa Touch - PullRequest
0 голосов
/ 15 июля 2011

Я довольно новичок в ООП и шаблонах проектирования, но я однажды реализовал шаблон Singleton для передачи статических массивов и строковых объектов между различными ViewControllers.

Мне было интересно, существует ли простой способчтобы все мои ViewControllers прослушивали жест или событие, а затем выполняли некоторый код, как только произойдет указанный жест / событие.Я думал о том, чтобы либо использовать объект UIGestureRecognizer, либо метод motionBegan класса UIResponder.

Я уже добился этой цели, создав новый класс UIWindow и разместив там код.и изменив класс MainWindow.xib на мой пользовательский класс.Это работает, и это хорошее решение, но мне все еще интересно, есть ли способ реализации этого решения, не относящийся к IB (например, синглтоны)

Заранее спасибо за ваше руководство.

Пример кода с благодарностью!

Ответы [ 2 ]

1 голос
/ 15 июля 2011

У вас есть подкласс UIWindow? Это очень необычно. Прочитайте об объекте делегата UIApplication и об общем шаблоне делегата. В основном это основной синглтон вашего приложения в Какао.

Если вы не хотите передавать его, вы всегда можете получить делегата приложения, вызвав

[[UIApplication sharedApplication] delegate]
0 голосов
/ 15 июля 2011

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

Возможно, вы захотите взглянуть на NSNotificationCenter и NSNotification, у вас может быть несколько списков объектов для уведомления о событии / изменении.

...