У меня чертовски много времени с классом CCMenu.Чтобы создать меню с этим классом, он заставляет вас вызывать метод initWithItems, который принимает va_list.Мне нужно сгенерировать этот список во время выполнения, и я прочитал, что создание массива C и передача, которая может функционировать так же, как va_list, работает под прикрытием, только это не удается.
У меня есть NSArray элементов, которые я хочу вva_list, и эти элементы являются ПОДКЛАССОМ CCMenuItem, класса, который menuWithItems ожидает в va_list.Если вы жестко закодировали этот список во время компиляции, он работает нормально, но моя попытка создать этот список динамически не работает.Что не так с этим?MenuItemButton является подклассом CCMenuItem.
NSArray *menuItems = [self getMenuItemsArray]; // Returns an NSArray of MenuItemButtons
MenuItemButton *argList = (MenuItemButton *)malloc( sizeof(MenuItemButton *) * [menuItems count] );
[menuItems getObjects:(id *)argList];
CCMenuAdvanced* menu = [CCMenuAdvanced menuWithItems:argList];
Это происходит сбой во время выполнения, BAD_ACCESS.Я знаю, что va_list должен завершаться нулем, я не знаю, так ли это с моим кодом после вызова getObjects, или это даже проблема.