好的,这样的问题有很多答案,但是没有一个对我有用。基本上我已经写了一个非常简单的iOS应用,它带有标签和按钮。单击按钮,标签将更改。这是代码
//ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
- (IBAction)buttonPressed:(id)sender;
@property (strong, nonatomic) IBOutlet UILabel *predictionLabel;
@end
//
// ViewController.m
// CrystalBall
//
//
//
#import "ViewController.h"
@implementation ViewController
@synthesize predictionLabel;
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[self setPredictionLabel:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)buttonPressed:(id)sender {
self.predictionLabel.text = @"Definitley Yes!";
}
@end
当我在模拟器中运行它时,应用程序可以正常打开,然后单击“预测”按钮,然后冻结,这是绿色显示的错误
Thread 1: Program recieved signal: "SIGABRT".
沿着一条线读
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
调试器说:
2013-01-19 22:53:30.511 CrystalBall [441:f803] *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[UIView setText:]:无法识别的选择器已发送至实例0x6a19c70'
* 首先抛出调用堆栈:
2013-01-19 22:53:30.511 CrystalBall[441:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setText:]: unrecognized selector sent to instance 0x6a19c70'
*** First throw call stack:
(0x13b9052 0x154ad0a 0x13baced 0x131ff00 0x131fce2 0x2385 0x13baec9 0x135c2 0x1355a 0xb8b76 0xb903f 0xb82fe 0x38a30 0x38c56 0x1f384 0x12aa9 0x12a3fa9 0x138d1c5 0x12f2022 0x12f090a 0x12efdb4 0x12efccb 0x12a2879 0x12a293e 0x10a9b 0x1da8 0x1d05)
terminate called throwing an exception(gdb)
希望这是足够的信息。谢谢!
最佳答案
'-[UIView setText:]: unrecognized selector sent to instance 0x6a19c70'
表示您正在尝试将
setText
消息发送到没有任何此类方法的UIView
实例。这可能来自以下语句:
self.predictionLabel.text = @"Definitley Yes!";
因此,您应该查看如何定义
predictionLabel
并确保其类型正确。关于调试器向您显示这一行的事实:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
您应该在Xcode中定义一个异常断点以捕获所有异常:
+
图标; 现在,调试器将在导致sigabrt的实际行上停止,以便您可以检查对象的状态。
关于ios - SIGABRT线程错误运行简单的iOS应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428025/