5

Я пытаюсь использовать функцию objc_getProtocol(), чтобы получить ссылку на структуры, представляющих NSApplicationDelegate протокола:objc_getProtocol() возвращает NULL для `NSApplicationDelegate"

Protocol *protocol = objc_getProtocol("NSApplicationDelegate"); 

Однако, по какой-то причине, это всегда возвращается NULL.

Другие протоколы, такие как NSObject, NSCoding, NSTableViewDelegate и NSTableViewDataSource работать нормально.

Есть ли что-то особенное о NSApplicationDelegate, или я делаю что-то неправильно?

+0

Это приложение для Mac? Если это тогда, добавьте этот тег! coz Я не нахожу NSApplicationDelegate в iOS (здесь мы hv UIApplicationDelegate) Приложение.!? Плс исправьте меня, если я ошибаюсь.! –

+1

Да, это приложение Mac (отсюда и тег AppKit). –

+0

Кажется, как ошибка для меня ... – fbernardo

ответ

3

Нашел ответ в документации Apple:

http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html#//apple_ref/doc/uid/TP30001163-CH15

Компилятор создает объект протокола для каждого объявления протокола он сталкивается, но только если протокол также:

  • Принято a класс,
  • Или упоминается где-то в исходном коде (с использованием @protocol())