Как реализовать шаблон наблюдателя C в Objective C

#c #objective-c #interface #observer-pattern

#c #objective-c #интерфейс #observer-pattern

Вопрос:

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

Я Гуглил весь день, но не смог найти ничего, связанного с этой проблемой. Как я могу подписаться на этот шаблон наблюдателя C с помощью класса Objective C? Для этого нужно было бы использовать наследование, но это, очевидно, не может работать, поскольку оболочка является Objective C и не может наследовать от интерфейса C .

Комментарии:

1. Вы не можете. Objective C и C несовместимы друг с другом. Попробуйте Objective C .

2. Не могли бы вы добавить пример использования вашего наблюдателя?

Ответ №1:

Почему наблюдателю нужно наследовать от вашего класса obj-c? Разве экземпляры класса objective-c не могут просто иметь наблюдателя, который перенаправляет на объект objective-c?

Ответ №2:

Для этого нужно было бы использовать наследование, но это, очевидно, не может работать, поскольку оболочка является Objective C и не может наследовать от интерфейса C

Это неверное утверждение, обертки обертывают, они не наследуются. Если вам нужно использовать C , вам нужно использовать Objective-C , создав файл с .mm расширением.

Комментарии:

1. > обертки переносят, они не наследуют True, поэтому, похоже, мне нужно будет создать другой класс C , который наследуется от интерфейса, и обернуть его?

2. Да, если необходимо наследование, вам нужно будет наследовать с другим классом C , а затем, если вам нужна оболочка Objective-C, которая будет вызывать унаследованный класс.