好的,发布指针为零?

fuz*_*oat 7 cocoa objective-c

如果我在创建对象时创建一个包含两个对象指针(见下文)的新对象,则将指针设置为指向nil;

@interface rocketShip : NSObject {
    NSString *name; 
    NSNumber *thrust;
}
Run Code Online (Sandbox Code Playgroud)

如果(出于某些意外的原因)我没有分配这些指针,后来在我的dealloc方法中释放它们就好了,我很确定它是,只是想检查一下?

- (void)dealloc{
    [name release];
    name = nil;
    [thrust release];
    thrust = nil;
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

加里

Ada*_*ght 22

将消息发送到nil不会导致错误,所以这很好.你需要确保指针实际上是nil - 向垃圾指针发送消息可能会导致错误.


gav*_*inb 7

是的,你可以这样做,因为你可以安全地发送消息(例如release)nil,它将什么都不做.