代码仅在断点处于活动状态时执行

时间:2013-10-30 23:18:05

标签: ios breakpoints

这是我在stackoverflow上的第一篇文章,所以我会尽量清楚。 我是iPhone开发的初学者,如果我的问题是一个菜鸟,请提前原谅。 请原谅我的英文...

当UIViewController出现时,我正试图在一些UITextLabel中立即显示日期值。 但dateLabel和hourLabel不会更新。只有在超级初始化之后才设置断点,代码才能正常执行。

调用UIViewController CustomDatePicker

- (IBAction)setStartPointClicked:(id)sender {

    _picker = [[CustomDatePicker alloc]initWithNibName:@"CustomDatePicker" bundle:nil];

    _picker.delegate = self;
    [self presentViewController:_picker animated:YES completion:^{

    }] ;

}
调用

iniWithNibName方法来初始化控制器

- (id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if(!self) {                                       //<=============Breakpoint
        return nil;
    }
    [self.datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy"];
    NSString* str = [dateFormatter stringFromDate:_datePicker.date];
    [_dateLabel setText:str];
    NSLog(str);

    [dateFormatter setDateFormat:@"HH:mm"];
    str = [dateFormatter stringFromDate:_datePicker.date];
    [_hourLabel setText:str];
    NSLog(str);

    return self;
}

我想我之前想要调用属性,他们有时间分配。如果我在每个标签字符串更改后放置断点,它就不会更新。只有在超级init和要执行的代码之间放置断点时,它们才会执行。断点是否给我的应用程序加载对象一些时间?

有什么想法吗? 谢谢提前

2 个答案:

答案 0 :(得分:0)

将代码改为 viewDidLoad

答案 1 :(得分:0)

请尝试以下更改:

// The init... method. This is the iOS standard way of writing it
- (id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if(self) {

    }

    return self;
}

// viewDidLoad method
-(void)viewDidLoad {

    [self.datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy"];
    NSString* str = [dateFormatter stringFromDate:self.datePicker.date];
    [self.dateLabel setText:str];
    NSLog(str);

    [dateFormatter setDateFormat:@"HH:mm"];
    str = [dateFormatter stringFromDate:_datePicker.date];
    [self.hourLabel setText:str];
    NSLog(str);
}

希望这有帮助!