在下面的代码中,我很想知道在<: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];
}
答案 0 :(得分:2)
我没有看到任何设置为nil
的内容。如果您引用的是sender
参数,那么nil
正在 PASSED 作为发件人对象。这不是将任何变量分配给nil
。在您的示例中,永远不会使用发件人,因此nil
无效。
但是,如果使用了该参数,则会获得将消息传递给nil的默认行为。也就是说,如果调用无效,则没有任何反应,如果它返回一个对象,则返回nil等等。
答案 1 :(得分:2)
如果您指的是行[self showCurrentTime:nil];
,那么它只是发送nil,因为该方法需要sender
参数。如果您不需要发件人的情况(即使您使用Interface Builder中的方法),则可以删除方法名称的“:(id)sender”部分。