Я использую sprite builder и Xcode.Почему переменная экземпляра кода кода не инициализируется и не распечатывается «NSGlobalBlock»?
Кто-нибудь видит, где я ошибаюсь с моим кодом «whereToNext»? Я пытаюсь использовать его для навигации между сценами, но по какой-то причине он не входит в код инициализации в шаблонах (void), даже если он входит в метод шаблонов. Поскольку он никогда не переходит в код whereToNext =^{}, когда я вызываю его в методе next(), ничего не происходит. (Следующий метод вызывается с помощью соединения коды к кнопке в спрайтах строителя.)
В качестве второго вопроса относительно CCTextField: я поместил два CCTextField узла в моем TrialCustomization.cbb (который имеет соединение ExperimentSelection пользовательского кода класса) на sprite builder, а затем создал два doc-корня var code connection «_blocks» и «_trials», а затем создал переменную в соответствующем классе с тем же именем CCTextField * _blocks; и то же самое для _trials, но когда я даю это текстовое поле, он не сохраняет его в переменные, которые я сохранил в их соответствующие методы.
#import "CCNode.h"
@interface ExperimentSelection : CCNode
@property (nonatomic, copy) void(^whereToNext)(void);
@property CCTextField* _trials;
@property CCTextField* _blocks;
extern int trials;
extern int blocks;
-(void)patterns;
-(void)setTrialandBlock;
@end
@implementation ExperimentSelection
@synthesize whereToNext;
@synthesize _blocks;
@synthesize _trials;
-(void)patterns{
whereToNext=^{
CCScene *patternsSelection = [CCBReader loadAsScene:@"PatternsSelection"];
[[CCDirector sharedDirector] replaceScene:patternsSelection];
NSLog(@"Why is this code not being executed??");
};
NSLog(@"whereToNext: %@", whereToNext);
[self setTrialandBlock];
}
-(void)_trials:(CCTextField*)trialsNum{
trials=[trialsNum.string intValue];
}
-(void)_blocks:(CCTextField*)blocksNum{
blocks=[blocksNum.string intValue];
}
-(void)setTrialandBlock{
CCScene *customizeExperiment = [CCBReader loadAsScene:@"TrialCustomization"];
[[CCDirector sharedDirector] replaceScene:customizeExperiment];
NSLog(@"blocks: %i, trials: %i",blocks, trials);
}
-(void)next{
NSLog(@"wherearewegoingnext: %@, blocks: %i, trials: %i",whereToNext, blocks, trials);
whereToNext();
}
@end
В интерфейсе класса? –
В интерфейсе или в категории. Для частных методов я использую категории. Вы используете ARC? –
все еще не работает. Как только я объявляю его в методе шаблонов, я печатаю NSLog (@ "WhereToNext:% @", гдеToNext). И я все еще получаю <_NSGlobalBlock__: 0x28da10>, который я предполагаю, это всего лишь адрес вместо содержимого, которое я хотел заполнить его –