#objective-c #chromium #xcode6 #chromium-embedded #osx-yosemite
#objective-c #chromium #xcode6 #chromium-встроенный #osx-yosemite
Вопрос:
Попытка скомпилировать встроенную платформу Chromium в Yosemite Developer Preview выдает мне несколько ошибок, связанных [NSApp setDelegate:self];
cefsimple_mac.mm с ошибкой:
cefsimple_mac.mm:93:22: Несовместимые типы указателей, отправляющие ‘SimpleAppDelegate *’ параметру типа ‘id’
Очевидно, что это не решение, но комментирование этого также приводит к большему количеству этих ошибок в коде.
Я посмотрел NSApp setDelegate в библиотеке предварительной версии для разработчиков Mac, и кажется, что она больше не работает так, как предполагалось в 10.10 (я не хочу говорить устаревшим, потому что у меня заканчивается память, и я просто знаю, что это было вычеркнуто).
Кто-нибудь знает, как я мог бы это исправить?
Ответ №1:
Я не пробовал CEF в 10.10, но похоже, что это изменение API NSApp в 10.10,
Вот аналогичная проблема в Qt:
Так что исправление, возможно, заменит
[NSApp setDelegate:self]
с
[[NSApplication sharedApplication] setDelegate:self];
Комментарии:
1. Теперь я получаю следующее: несовместимые типы указателей отправляют ‘SimpleAppDelegate *’ в параметр типа ‘id<NSApplicationDelegate>’ Очевидно, мне нужно получить делегат класса, но я не уверен, как это сделать.
2. Измените номер строки 14 на cefsimple_mac.mm из «@interface SimpleAppDelegate : NSObject» в «@interface SimpleAppDelegate: NSObject<NSApplicationDelegate>»