【发布时间】:2011-08-05 20:10:02
【问题描述】:
好的,所以这让我发疯了一段时间,但它偶尔会自我纠正,所以我已经处理了它,但现在是时候修复它了!
情况如下:
在 iOS 的 Interface Builder 中创建的视图。包含一个引用为“banana015”的 UIButton
我的实现.m中的方法如下:
- (IBAction)draggedOut: (id)sender withEvent: (UIEvent *) event {
if ([[NSUserDefaults standardUserDefaults] integerForKey:@"edittingmode"] == 3) {
UIButton *selected = (UIButton *)sender;
selected.center = [[[event allTouches] anyObject] locationInView:self.view];
if ([[NSUserDefaults standardUserDefaults] integerForKey:@"changeskin"] == 1) {
[self scifiTempSave];
}
else if ([[NSUserDefaults standardUserDefaults] integerForKey:@"changeskin"] == 2) {
[self bananaTempSave];
}
else if ([[NSUserDefaults standardUserDefaults] integerForKey:@"changeskin"] == 3) {
[self orangeTempSave];
}
}
else{}
}
并在我的 .h 标头中声明为
-(IBAction)draggedOut:(id)sender;
现在,当我使用 Touch Drag Inside 事件将按钮连接到 Interface Builder 中的 'draggedOut:' 方法时,我可以在构建和运行项目时拖动按钮(预期行为)但是当我发布应用程序时崩溃。
在过去,我能够连接到一个显示为“draggedout:withevent”的方法,该方法效果很好。今晚我已经将大约 50 个项目连接到这个 'draggedout: withevent' 选项并且它对每个项目都非常有效 - 但是我有两个 UIButtons(几乎在所有方面都相同(不同的引用插座)我还没有连接到它,如果它允许我,我会被诅咒的。
有人可以帮忙吗?这已经激怒了一段时间。该选项消失了,但我之前连接到它的所有那些仍然可以正常工作,我只是无法连接任何新的东西......或者如果我断开它们连接旧的。
【问题讨论】:
-
我在这里可以看到的一个问题是您在标头中的方法声明与实现不同。
-
我应该如何在标题中声明它?
-
- (IBAction)draggedOut: (id)sender withEvent: (UIEvent *) event;另外,请发布有关释放按钮时发生的崩溃的任何错误信息。如果你还没有,enable NSZombieEnabled -
实际上刚刚意识到发生崩溃的原因与此特定问题无关(一个错字 - 只是巧合地落在同一个按钮上)感谢您的帮助 - 它似乎已经解决了我的问题,我仍然得到连接到一个简单的 draggedout: 方法的选项也是如此 - 知道为什么我会同时得到这两个(如果你愿意把你的 cmets 放在答案的形式中,我很乐意为你打勾:)
标签: iphone xcode methods interface-builder draggable