В Cocos2D использование блоков для создания действия меню вызывает ошибку SIGABRT
в методе init
этой сцены:
CCLabelTTF *label = [CCLabelTTF labelWithString:@"test" fontName:@"Times" fontSize:12];
CCMenuItemLabel *toCauseCrash = [CCMenuItemLabel itemWithLabel:label block:^(id sender) {
NSLog(@"Blocks work?");
}];
Пробовал новейший Cocos2D, ничего. Это сообщение на форуме обещает (а) исправление в ближайшее время и редактирование файла "BuildSettings-iOS.xcconfig" (которого, насколько я могу судить, не существует).
(1) Кто-нибудь знает, как исправить Cocos2D, чтобы разрешить блоки в меню?
(2) Кто-нибудь знает, о каком файле xcconfig идет речь в вышеприведенном посте, или как его найти? (Это вещь из Kobold2d)
Редактировать: вот примеры кода, которые я пробовал после установки "-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];