Я работаю над многооконным приложением, и во втором окне я вызываю эту функцию init().
static struct MessageUI {
Window *window;
MenuLayer *menu_layer;
} ui;
...
...
...
void messages_init(void) {
ui.window = window_create();
window_set_window_handlers(ui.window, (WindowHandlers) {
.load = window_load,
.unload = window_unload
});
}
Когда я запускаю код, я получаю эту ошибку, относящуюся к операторам присваивания .load и .unload.
../src/messages.c: In function 'messages_init':
../src/messages.c:63:3: error: initialization from incompatible pointer type [-Werror]
../src/messages.c:63:3: error: (near initialization for 'handlers.load') [-Werror]
../src/messages.c:65:2: error: initialization from incompatible pointer type [-Werror]
../src/messages.c:65:2: error: (near initialization for 'handlers.unload') [-Werror]
Любая идея, почему эта ошибка возникает?
Заранее спасибо!
ИЗМЕНИТЬ
Вот мои функции window_load и window_unload
static void window_load(void) {
// Create it - 12 is approx height of the top bar
ui.menu_layer = menu_layer_create(GRect(0,0,144,168-16));
menu_layer_set_click_config_onto_window(ui.menu_layer,ui.window);
MenuLayerCallbacks callbacks = {
.draw_row = (MenuLayerDrawRowCallback) draw_row_callback,
.get_num_rows = (MenuLayerGetNumberOfRowsInSectionsCallback) num_rows_callback,
.select_click = (MenuLayerSelectCallback) select_click_callback
};
menu_layer_set_callbacks(ui.menu_layer, NULL, callbacks);
//Add to window
layer_add_child(window_get_root_layer(ui.window), menu_layer_get_layer(ui.menu_layer));
}
static void window_unload(void) {
APP_LOG(APP_LOG_LEVEL_DEBUG, "unloading message UI");
}
window_load
иwindow_unload
? - person Ismail Badawi   schedule 11.06.2014