I have an error in main.m “Thread 1: signal SIGABRT” How can I fix this?

馋奶兔 提交于 2019-12-03 11:19:04

问题


My code in the main.m file is as follows. I haven't changed it at all from when I started programming this app.

#import <UIKit/UIKit.h>

#import "rickAppDelegate.h"

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

}

I am getting the SIGABRT error on the 'return UIApplicationMain' line. My program is an app which displays a red button and when you press it, it plays a video. This error appeared after I implemented iAds using this tutorial: http://www.ioslearner.com/implement-iads-tutorial-iphone-ipad-sdk/

It worked at first, but then I started receiving the SIGABRT error. I have done a lot of searches and cannot figure out how to fix this, In all the websites, someone asks this and then figures it out themselves or through a very vague answer which I am not able to understand. Please Help! If you answer, could you please be specific as to what I have to do. If required I can post my entire code. Thanks in advance!


回答1:


When you get SIGABRT on that line of main, it means that your program has raised an exception. The stack trace shows where the exception is being caught, not where it's being raised. Usually this is not helpful.

To debug the problem, you can do two things:

  1. Click the “Continue Program Execution” button in the debugger control bar, or choose Program > Debug > Continue from the menu bar. This will let the program continue the exception-raising process. It will print a message to the debugger console that will help you understand what's wrong. (You may have to continue execution a couple of times before it actually prints messages.) Read the messages carefully! They usually contain helpful information.

  2. Set an exception breakpoint. This will make Xcode stop your program at the point where the exception is being raised, so you can see the code and the stack trace that is causing the problem.




回答2:


SIGABRT (Signal abort) indicates that the app crash due to failure to access something which is nil or doesn't exist, usually in my experience it's broken Outlets.

  1. In the storyboard, check all your Outlets in each view controller.

  1. Make sure you remove the connections with yellow warnings. These are invalid outlets.

  1. Check your storyboard ID in the Identity Inspector if the names are correct.

  2. Check for any breakpoint in the left side of the code.

Hope this helps someone!




回答3:


You should debug your application in a file of the UIVIewController (that screen or view where application falls down). Usually this error appears when:

1)your xib is not appropriate for your outlets. For example usual UIView and UITableView control instead of UITableViewController.

2)in your program you want to use a nonexistent object. For example: if the count of array elements 3, but you want to get the 4th element.



来源:https://stackoverflow.com/questions/9782621/i-have-an-error-in-main-m-thread-1-signal-sigabrt-how-can-i-fix-this

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!