#import "GameObject.h"
#import "Definitions.h"
@implementation GameObject
@synthesize owner;
@synthesize state;
@synthesize mirrored;
@synthesize button;
@synthesize switcher;
- (id) init {
if ( self = [super init] ) {
[self setOwner: EmptyField];
button = [UIButton buttonWithType:UIButtonTypeCustom];
[self setSwitcher: FALSE];
}
return self;
}
- (UIButton*) display{
button.frame = CGRectMake(0, 0, GO_Width, GO_Height);
[button setBackgroundImage:[UIImage imageNamed:BlueStone] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonPressed:)
forControlEvents:UIControlEventTouchUpInside];
return button;
}
-(void)buttonPressed:(id) sender {
//...
}
}
- (void) dealloc {
[super dealloc];
}
@end
嗨!
我想知道上面是否可能以某种方式在一个类中(在我的情况下它被称为GameObject)或者如果我必须让按钮在viewcontroller中调用一个方法...以上结果随着应用程序崩溃
我会在viewcontroller的一个循环中调用display,而id喜欢改变buttonPressed中的一些GameObjects实例变量。还想通过调用buttonPressed中的一些其他方法来改变其他一些东西,但我认为这将是我的问题中的较小一部分;)
哦,顺便说一下:我做了所有的程序化!所以这个没有界面构建器。
还想知道我如何将一些变量传递给buttonPressed方法......无法在任何地方找到它:(对此的帮助将非常感激;)
感谢 FLO
答案 0 :(得分:2)
由于内存管理问题,您的应用程序崩溃了。
button = [UIButton buttonWithType:UIButtonTypeCustom]; // wrong
+buttonWithType:
方法不是+alloc
/ -copy
/ +new
方法,因此返回值为-autorelease
d。但GameObject将成为此按钮的所有者。因此,您应该-retain
。
button = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; // correct
(当然,-release
中的-dealloc
。)