我创建一个指针不会创建一个Class对象。 但它可以是send方法在另一个实例方法中执行。 我想只需要指向该对象的指针就可以执行一个方法。
答案 0 :(得分:0)
这是因为Xcode仅检查声明的t
变量类型是否具有名为a
的可见读写属性。如果此t
实际上是对象或其他东西,它并不在乎。例如,它无法知道t
是对象还是零,或者这种情况下的其他任何内容
- (void) method:(One*) t{
t.a = @"Some string";
}
你可以这样称呼它
[two method:nil];
Xcode不会抱怨。你甚至可以这样做
One *t = (One *)[[NSObject alloc] init]; //warning here
t.a = @"Some t"; //Xcode doesn't care, that t is actually NSObject and doesn't respond to setA:; But you get a runtime error
ObjC中的 nil
响应所有选择器 - 您可以在nil对象上调用任何可见方法,但您不会收到警告或错误。只是默默地经过