0

我是 iOS 新手。我在这里搜索了 UITextfield Sematic Issues,以及它的变体。我正在尝试制作一个非常简单的应用程序,您可以:

在文本字段中输入文本 按 A 按钮 它将标签更改为在文本字段中输入的文本。

但我不断收到这个奇怪的语义错误,我不知道如何解决它。

代码在这里:

.m 文件。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *myTextField;


@property (weak, nonatomic) IBOutlet UILabel *myLabel;



- (IBAction)changeLabel:(id)sender;

@end

.h

#import "ViewController.h"

@interface ViewController ()


@end
@implementation ViewController

- (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)changeLabel:(id)sender {
    NSString *message = [[NSString alloc] initWithFormat:@"Hello %@", [myTextField text]];
    [myLabel setText:message];
}

谢谢。

4

2 回答 2

0

问题是您在没有“自我”的情况下直接引用您的属性。用这个替换你的 m 文件内容:

@interface ViewController ()


@end
@implementation ViewController

- (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)changeLabel:(id)sender {
    NSString *message = [[NSString alloc] initWithFormat:@"Hello %@", [self.myTextField text]];
    [self.myLabel setText:message];
}

@end
于 2013-05-20T06:21:08.133 回答
0

我期待错误之类的unknown Reciever 'myTextField'错误,

在 IOS 6 苹果中默认提供 Synthesize 属性,因此您可以使用

任何一个

NSString *message = [[NSString alloc] initWithFormat:@"Hello %@", [_myTextField text]];

或者

NSString *message = [[NSString alloc] initWithFormat:@"Hello %@", [self.myTextField text]];
于 2013-05-20T06:25:42.187 回答