#iphone #objective-c #xcode #ios4 #xcode4
#iPhone #objective-c #xcode #ios4 #xcode4
Вопрос:
В настоящее время у меня есть два класса. К классу A прикреплен мой UIView. Мой второй класс, класс B, имеет некоторые другие функции, которые работают в фоновом режиме. У меня есть одна функция, которая заканчивается строкой. Есть ли простой способ переместить эту строку из класса B в класс A, который имеет UIView.
Комментарии:
1. Какова связь между классом A и классом B? В зависимости от характера связи существует несколько вариантов (на самом деле шаблоны проектирования) NSNotificationCenter, шаблон делегирования, блоки обработчиков. Ответ зависит от дизайна приложения.
2. Вы можете сделать это, определив метод делегирования в B и реализовав его в A. Затем вы можете вызвать этот метод в B, когда он будет готов.
Ответ №1:
Конечно — просто убедитесь, что экземпляр B имеет ссылку на экземпляр A, которому вы хотите передать строку.
Правило: каждый раз, когда вы хотите, чтобы один объект, скажем foo
, мог напрямую взаимодействовать с другим объектом, bar
, затем foo
требуется указатель на bar
.
Связь между объектами не всегда прямая — некоторые другие объекты (или объекты) могут выступать в качестве посредников. Это не меняет приведенное выше правило; косвенная связь — это просто последовательность прямых сообщений. Если foo
для связи используется уведомление bar
, foo
требуется указатель на центр уведомлений, а центру уведомлений нужен указатель на bar
.