'viewDidLoad' не е деклариран в NSViewController?

Аз съм какао и начинаещ в Objective-c. Опитвам се да създам приложение за Mac и когато се опитам да създам нов контролер, който наследява от NSViewController, той автоматично ми дава - (void)viewDidLoad в .m файла (но не и в .h). Проблемът е, че компилаторът винаги крещи, казвайки „Няма видим @интерфейс за „NSViewContoller“, декларира селектора „viewDidLoad“.

Как е възможно? Моля, помогнете ми да разбера какво се случва тук и как мога да го поправя. Благодаря ти.


person AyushISM    schedule 13.10.2014    source източник


Отговори (2)


ViewDidLoad се поддържа само в NSViewController, ако сте насочени към OSX Yosemite и нагоре! Премахнете го, ако насочвате към приложението си под Yosemite и вместо това използвайте метода -awakeFromNib или -loadView.

Както можете да го видите в Справочник на NSViewController на Apple, че е

Available in OS X v10.10 and later.

P.S. Това ми се случи, докато разработвах приложение за OSX Mevericks и по-нови версии, когато наследих клас от NSViewController и Xcode 6 автоматично генерира метод ViewDidLoad за мен, което всъщност е грешка (мисля)

person Nofel Mahmood    schedule 13.10.2014
comment
вижте: ‹stackoverflow.com/questions/ 30174952/ - person geowar; 14.10.2015

От документацията на apple, метод NSViewDidLoad:

„За контролер на изглед, произхождащ от nib файл, този метод се извиква веднага след като е зададено свойството на изглед. За контролер на изглед, създаден програмно, този метод се извиква веднага след завършване на метода loadView.“

Трябва да създадете метод в .h за преглед във вашето приложение.

person Vinicius Carvalho    schedule 13.10.2014