Ios UIView未在iPhone应用程序中更新

Ios UIView未在iPhone应用程序中更新,ios,objective-c,uiview,Ios,Objective C,Uiview,我是iPhone应用程序开发新手,下面是ViewController.m #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from

我是iPhone应用程序开发新手,下面是ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

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

    [self updateMyView];

}

- (IBAction)clickButtonResult:(id)sender
{
    enteredText = [textField text]; // Or textField.text

    NSLog(@"Number 1 : %i", number_1);
    NSLog(@"Number 2 : %i", number_2);
    NSLog(@"Entered Text is %@", enteredText);

    int NUM_RESULT = number_1 + number_2;
    verify_result = [NSString stringWithFormat:@"%i", NUM_RESULT];

    NSLog(@"Verify Result : %@", verify_result);
    NSString *final_result = [NSString stringWithFormat:@"%d", [enteredText isEqualToString:verify_result]];
    int final_int_result = [final_result integerValue];


    if (final_int_result) {
        //result_label.text = @"Correct";
        NSLog(@"Correct");
        [self updateMyView];
    } else {
        //result_label.text = @"Wrong";
        NSLog(@"Wrong");
    }
}

- (int)getRandomNumberBetween:(int)min maxNumber:(int)max
{
    return min + arc4random() % (max - min + 1);
}

- (void) updateMyView
{
    number_1 = [self getRandomNumberBetween:10 maxNumber:99];
    number_2 = [self getRandomNumberBetween:10 maxNumber:99];

    num_1.text = [NSString stringWithFormat:@"%i", number_1];
    num_2.text = [NSString stringWithFormat:@"%i", number_2];
}

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

@end
和ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UILabel *num_1;
    IBOutlet UILabel *num_2;
    IBOutlet UILabel *result_label;
    IBOutlet UITextField *textField;

    int number_1;
    int number_2;
    NSString *verify_result;
    NSString *enteredText;
    BOOL display_result;
}

- (IBAction)clickButtonResult:(id)sender;

@end
@interface ViewController : UIViewController

@property (nonatomic, weak) IBOutlet UILabel *num_1;
@property (nonatomic, weak) IBOutlet UILabel *num_2;
@property (nonatomic, weak) IBOutlet UILabel *resultLabel;
@property (nonatomic, weak) IBOutlet UITextField *textField;

@property (nonatomic) NSInteger number_1;
@property (nonatomic) NSInteger number_2;

@property (nonatomic, strong) NSString *verifyResult;
@property (nonatomic, strong) NSString *enteredText;
@property (nonatomic) BOOL displayResult;

- (IBAction)clickButtonResult:(id)sender;

@end
#导入
@界面ViewController:UIViewController
{
IBUILabel*num_1;
IBUILabel*num_2;
IBUILabel*结果标签;
IBOutlet UITextField*textField;
整数_1;
整数_2;
NSString*验证_结果;
NSString*输入文本;
BOOL显示结果;
}
-(iAction)单击按钮结果:(id)发件人;
@结束
输入正确结果后,UIView应使用updateMyView函数进行更新,但不会发生


这里有人可以帮忙吗?

尝试更改
viewdiload
中的
num_1.text
,以确保您可以从
UIViewController
访问该标签

因此,在
viewDidLoad
中,只需输入如下内容


num1.text=@“从viewDidLoad更新”

确保已将
num\u 1
num\u 2
UILabels
正确连接。您似乎尚未连接这些属性。

首先,开始使用属性

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UILabel *num_1;
    IBOutlet UILabel *num_2;
    IBOutlet UILabel *result_label;
    IBOutlet UITextField *textField;

    int number_1;
    int number_2;
    NSString *verify_result;
    NSString *enteredText;
    BOOL display_result;
}

- (IBAction)clickButtonResult:(id)sender;

@end
@interface ViewController : UIViewController

@property (nonatomic, weak) IBOutlet UILabel *num_1;
@property (nonatomic, weak) IBOutlet UILabel *num_2;
@property (nonatomic, weak) IBOutlet UILabel *resultLabel;
@property (nonatomic, weak) IBOutlet UITextField *textField;

@property (nonatomic) NSInteger number_1;
@property (nonatomic) NSInteger number_2;

@property (nonatomic, strong) NSString *verifyResult;
@property (nonatomic, strong) NSString *enteredText;
@property (nonatomic) BOOL displayResult;

- (IBAction)clickButtonResult:(id)sender;

@end
在ViewController.m代码中,使用self.{name of property},例如textField属性的self.textField


现在,转到Interface builder并将IBOutlet属性连接到正确的对象。(用右键单击文件所有者)

只需移动
[self-updateMyView]中的
语句不在
范围内,请单击按钮结果:
函数 然后单击按钮时,它将更新视图

if (final_int_result) {
    //result_label.text = @"Correct";
    NSLog(@"Correct");

} else {
    //result_label.text = @"Wrong";
    NSLog(@"Wrong");
}
[self updateMyView];

您是否在clickButtonResult方法中设置了断点并单步执行,以确保a)它正在被调用,b)它正在执行您期望的操作?顺便说一句,使用
[textField.text intergerValue]
可能比将结果转换为字符串并比较字符串更简单。使用断点查看是否调用了更新视图函数和clickresult什么是断点,我在这里没有被理解?这并不能真正回答这个问题-回答这个问题需要更多的信息,您提供的是一个合理的调试步骤,但是作为对问题的评论比回答要好。我得到了相同的错误,UIView没有更新错误是“线程1:断点1.1”要点是您应该
序列图像板中的
UILabel
UIButton
连接到`ViewController.h`文件中相应的变量或方法,使用
辅助编辑器
,确保在行号之前的圆圈中有一个点