我在此链接中尝试了 Moshe 的代码,除了“for (UIButton *button in ...”) 的部分之外它都有效,并且每次单击按钮时它都会崩溃。
所以我在 viewDidLoad 方法中尝试了这段代码:
UIButton *testButton = [[UIButton alloc]initWithFrame:CGRectMake(20,50,30,30)];
testButton.backgroundColor = [UIColor orangeColor];
[testButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[testButton setTitle:@"A" forState:UIControlStateNormal];
[testButton addTarget:self action:@selector(commonMethodForButtons:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:testButton];
[testButton release];
我的项目只包含这个和 Moshe 的示例代码。知道应用程序崩溃的原因吗?我没有崩溃日志。
编辑:
在开放范围内我有这个方法:
-(void)commonMethodForButtons:(id)sender
{
NSLog (@"you touched me!");
}
编辑2:
我找到了这个问题的原因:
我在 AppDelegate 中注释掉了[mvc release];
,所以它现在可以完美运行了 :)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
MVC *mcv = [[MVC alloc]initWithNibName:nil bundle:nil];
[self.window addSubview: mcv.view];
//[mcv release];
[self.window makeKeyAndVisible];
return YES;
}
感谢您指出这一点!:)