Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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
Ios 你好,世界客观C版_Ios_Objective C - Fatal编程技术网

Ios 你好,世界客观C版

Ios 你好,世界客观C版,ios,objective-c,Ios,Objective C,我最近开始研究基本的IOS应用程序开发,我正在使用以下在线教程,我似乎遇到了一个绊脚石,下面是我的两个视图控制器。我得到的错误是关于视图控制器M的displaytext.text部分。出现的错误是 HelloCoaViewController.m:30:4:使用未声明的标识符'displaytext';你是说“_displaytext”吗 当我做出建议的更改时,我得到一个线程1:信号SIGABRT,它围绕着下面的代码 @autoreleasepool { return UIA

我最近开始研究基本的IOS应用程序开发,我正在使用以下在线教程,我似乎遇到了一个绊脚石,下面是我的两个视图控制器。我得到的错误是关于视图控制器M的displaytext.text部分。出现的错误是

HelloCoaViewController.m:30:4:使用未声明的标识符'displaytext';你是说“_displaytext”吗

当我做出建议的更改时,我得到一个线程1:信号SIGABRT,它围绕着下面的代码

  @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([HelloCocoaAppDelegate class]));
下面是我目前使用的代码

//
//  HelloCocoaViewController.h
//  Test
//

#import <UIKit/UIKit.h>

@interface HelloCocoaViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *displaytext;
- (IBAction)hellobutton:(id)sender;
- (IBAction)byebutton:(id)sender;

@end


//
//  HelloCocoaViewController.m
//  Test
//
//

#import "HelloCocoaViewController.h"

@interface HelloCocoaViewController ()

@end

@implementation HelloCocoaViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)hellobutton:(id)sender {
   displaytext.text=@"Hello";

}

- (IBAction)byebutton:(id)sender {
   displaytext.text=@"Bye";
}
@end

由于您没有使用
@synthesis
为属性定义支持变量,因此它将隐式添加为
\uu

因此,要么将属性用作
self.displaytext
,要么通过
\u displaytext
直接访问属性的支持变量


自从Apple将默认编译器从GCC切换到llvm以来,Objective-C的发展非常快。WWDC视频是跟踪这些改进的好方法


据我所知,sigabrt错误将始终向您显示应用程序的主要部分,这是一个一般性错误,但您可以在xcode的左侧看到该警告下面,基本上是错误之前发生的情况。我本来想说你需要合成你的uilabel属性,但是另一个用户发现了,所以我给了他们一个升级投票。基本上你需要一个@synthesisdisplaytext;就在类的.m中实现HelloCoaViewController的下方,以及在代码中将displaytext.text更改为self.displaytext.text的下方…您将随着进度了解原因,基本上是看不见的方法。了解调试的细节非常重要。首先,您需要学习设置断点,以及如何理解控制台日志和调试数据显示。然后,您需要设置一个异常断点,以便捕获大多数错误,使您能够在出错时检查调用堆栈。检查以了解应用程序崩溃的原因。或者只是回顾一下教程,找出你不理解的地方和你做错的地方(如果应用程序在教程中工作)。感谢你提供的所有帮助和资源,我将对一些调试进行修改,看看问题是什么,目前我发现:'[setValue:forUndefinedKey:]:此类不符合key labeldisplay的键值编码。再次感谢大家。
@implementation HelloCocoaViewController
@synthesize displaytext;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)hellobutton:(id)sender {
   self.displaytext.text=@"Hello";

}

- (IBAction)byebutton:(id)sender {
   self.displaytext.text=@"Bye";
}
@end