这里的对象是什么?

时间:2011-06-21 18:35:18

标签: objective-c

在下面的代码中,我很想知道在<:p>中将哪个对象设置为nil

- (void)ViewWillAppear:(BOOL)方法。自我是否被禁止?或者是

中的所有对象

- (IBAction)showCurrentTime:(id)发送方法是否为nil'ed,或者都是nil'ed?

-(IBAction)showCurrentTime:(id)sender
{
    NSDate *now = [NSDate date];
    static NSDateFormatter *formatter = nil;
    if (!formatter) {
        formatter = [[ NSDateFormatter alloc ] init ];
        [formatter setTimeStyle:NSDateFormatterShortStyle];

    }
    [timeLabel setText:[formatter stringFromDate:now]];

}
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self showCurrentTime:nil];


}

2 个答案:

答案 0 :(得分:2)

我没有看到任何设置为nil的内容。如果您引用的是sender参数,那么nil正在 PASSED 作为发件人对象。这不是将任何变量分配给nil。在您的示例中,永远不会使用发件人,因此nil无效。

但是,如果使用了该参数,则会获得将消息传递给nil的默认行为。也就是说,如果调用无效,则没有任何反应,如果它返回一个对象,则返回nil等等。

答案 1 :(得分:2)

如果您指的是行[self showCurrentTime:nil];,那么它只是发送nil,因为该方法需要sender参数。如果您不需要发件人的情况(即使您使用Interface Builder中的方法),则可以删除方法名称的“:(id)sender”部分。