无法重命名源代码 - 获取错误'Thread1:signal SIGABRT'

时间:2012-08-12 10:56:30

标签: ios

我将一个动作拖到ViewController.h区域(这是我的dayNight按钮),如图所示:

//
//  ViewController.h
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

- (IBAction)dayNight:(id)sender;
- (IBAction)insulationClick:(id)sender;

现在我决定要阅读:

- (IBAction)dayNightClick:(id)sender;

所以我手动重命名,如上图所示。我还在ViewController.m文件中重命名它:

- (IBAction)dayNight:(id)sender{}

为:

- (IBAction)dayNightClick:(id)sender{}

当我执行代码时,一旦我使用我的按钮,我就会收到错误。

如果我手动重命名(没有单词Click),它会再次起作用。

为什么我不能手动修改代码行。还有其他位置我必须重命名代码吗?

错误是:

Thread1: signal SIGABRT

并指向main.m文件中的这行代码:

int main(int argc, char *argv[])
{
@autoreleasepool 
{
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

我确信这是一个非常基本的问题。

3 个答案:

答案 0 :(得分:2)

这是因为您的故事板/笔尖仍然指向旧名称。 nib文件基本上只是后台的XML文件,因此您需要打开笔尖/故事板,转到显示所有引用的检查器。您会发现您对IBAction的旧引用仍然存在。通过点击小十字架删除它并再次将其拖入ViewController并将其与您重命名为的函数连接。

如果您在头文件中更改方法签名,请务必记住更新storyboard + .m:)

答案 1 :(得分:1)

我发现以下内容:

  • 转到故事板(即可以看到您的GUI表示的视图)
  • 点击您要重命名的按钮(我们将删除它)
  • 点击名为&#34的按钮;显示连接检查器&#34; (位于xcode右上角附近,看起来像黑色圆圈中的右箭头)。
  • 有一个名为&#34;已发送事件&#34;的部分,您的按钮事件将在其周围绘制一个气泡,其中包含指向第二个气泡的链接,其中包含您的IBAction名称。
  • 单击第二个气泡中的小十字(x)以删除事件链接。

现在您可以重新开始并将按钮重命名为您喜欢的任何内容。在我的示例中,我将其重命名为:

(IBAction)dayNight:(id)sender{} 

为:

(IBAction)dayNightClick:(id)sender{} 

所以这是重命名,删除对该按钮的所有引用,然后再次创建它。请注意,要删除它的其他两个地方是:

  • 在* .h文件中,我删除了这一行:

    (IBAction)dayNight:(id)sender {}

并在* .m文件中,示例我删除了此代码:

(IBAction)dayNight:(id)sender{} 
{
    // code in here
}

答案 2 :(得分:0)

是。该按钮具有一个相关的目标/选择器,当它按下时它会调用。寻找包含以下内容的行:

[button addTarget:self action:@selector(dayNight:) forControlEvents:UIControlEventTouchUpInside];

并在此处更改选择器。