Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
非常简单的iPhone应用程序在UILabel settext上崩溃_Iphone_Ios_Crash_Uilabel_Settext - Fatal编程技术网

非常简单的iPhone应用程序在UILabel settext上崩溃

非常简单的iPhone应用程序在UILabel settext上崩溃,iphone,ios,crash,uilabel,settext,Iphone,Ios,Crash,Uilabel,Settext,我有一个非常简单的应用程序。IB中有一个按钮和一个标签。我有一个用于onClick的IBAction,它调用标签上的setText。标签有一个出口。所有东西都连接在IB中。它在模拟器中第一次崩溃应用程序。当我再次启动它时,它会设置文本。然后下次又会崩溃。它总是在实际设备上崩溃。这应该很简单,但我不确定我做错了什么 谢谢 在my.h文件中: #import <UIKit/UIKit.h> @interface UntitledViewController : UIViewContro

我有一个非常简单的应用程序。IB中有一个按钮和一个标签。我有一个用于onClick的IBAction,它调用标签上的setText。标签有一个出口。所有东西都连接在IB中。它在模拟器中第一次崩溃应用程序。当我再次启动它时,它会设置文本。然后下次又会崩溃。它总是在实际设备上崩溃。这应该很简单,但我不确定我做错了什么

谢谢

在my.h文件中:

#import <UIKit/UIKit.h>

@interface UntitledViewController : UIViewController {
IBOutlet UILabel *label;
IBOutlet UIButton *button;
}

@property (nonatomic, retain) UILabel *label;

-(IBAction) onClick1: (id) sender;

@end

对不起,我是新来的。如何获取崩溃日志和堆栈?谢谢。

编辑:虽然这个答案在技术上是正确的,但它根本没有回答这个问题:(对不起


<警告-这是一个猜测>

如果您在设置标签文本时遇到崩溃,它会告诉我您在过去为标签设置了一个值,但没有正确保留该值

我猜您有这样的代码:

label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,10,10)] autorelease];
什么时候应该有这样的代码

// Option 1
self.label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,10,10)] autorelease];


(第一种方法使用属性保留标签。第二种方法不会自动释放。第一种方法是推荐的方法)

再次检查您在IB中为标签设置的连接。
将断点放在调试器的行标签上。text=@“Hello World!”;
并确保此处的标签不是零。

如果为nil,则您没有在IB中为其设置连接。

向我们展示一个显示错误的简单代码示例。首先,您没有提供足够的详细信息。崩溃日志,堆栈?您从控制台获取崩溃日志-(单击运行->控制台)。您从调试器获取堆栈跟踪(运行->调试器)-控制台是应用程序输出的消息。调试器允许您查看代码崩溃时的状态。堆栈跟踪是调试器中左上角的一部分,显示函数名列表。如果将行
NSLog(@“%@”,标签)放在控制台中,您会看到什么;
作为onClick1方法的第一行?您确定要在.m文件的顶部合成标签吗?嗯。我从未分配标签。我不知道在IB中创建标签时需要分配。啊,我错过了头文件中的IBOutlet(并且误读了问题!)。抱歉!不用担心!感谢您的时间。
// Option 1
self.label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,10,10)] autorelease];
// Option 2
label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,10,10)];