В Cocos2D с помощью блоков, чтобы создать действие меню вызывает ошибку SIGABRT
в init
метод, который сцены:Cocos2d MenuItemLabel с использованием блоков вызывает SIGABRT
CCLabelTTF *label = [CCLabelTTF labelWithString:@"test" fontName:@"Times" fontSize:12];
CCMenuItemLabel *toCauseCrash = [CCMenuItemLabel itemWithLabel:label block:^(id sender) {
NSLog(@"Blocks work?");
}];
Пытался новейший cocos2d, ничего. This forum post обещает (a) исправление в ближайшее время и редактирование файла «BuildSettings-iOS.xcconfig» (которого, насколько я знаю, не существует).
(1) Кто-нибудь знает, как исправить Cocos2D, чтобы разрешить блоки в меню?
(2) Кто-нибудь знает, что такое файл xcconfig, о котором говорится выше, или как его найти? (Это Kobold2d вещь)
Edit: вот примеры кода, которые я пробовал после установки "-force_load $ (BUILT_PRODUCTS_DIR) /" в OTHER_LINKER_FLAGS:
id blockAction = [CCCallBlock actionWithBlock:^{
NSLog(@"Blocks action");
}];
void (^reusableBlock)(id sender) = ^(id sender) {
NSLog(@"Reusable block");
};
// SIGABRT:
CCMenuItemLabel *menuItem = [CCMenuItemLabel itemWithLabel:myLabel block:blockAction];
// SIGABRT:
CCMenuItemLabel *menuItem = [CCMenuItemLabel itemWithLabel:myLabel block:reusableBlock];
У меня были проблемы с блоками в menuItem, которые препятствовали правильному выпуску элемента, когда родитель освобожден. Мое предложение состояло бы в том, чтобы не использовать блок в MenuItems на данный момент и придерживаться цели: selector: – Ultrakorne
@Ultrakorne yep, вот в чем проблема, которую я описываю. Я надеюсь решить эту проблему. В то же время, да, я использую этот способ обхода. – buildsucceeded