How would I dealloc a boolean value?
Deallocing it this way below gives me a warning: Incompatible pointer to integer conversion assigning to ‘BOOL’ (aka ‘signed char’) from ‘void *’
- (void)dealloc {
self.booleanVar = nil;
[super dealloc];
}
Perhaps I should clarify, this is from a simple class inherited from NSObject.
I’m using the self.var = nil pattern that you see in Cocoa Touch classes. Let’s say if it was an NSString* instead should I use self.var = nil or [var release] in the deallocmethod? I’m a little confused here.
You don’t need to do it. It is not an object. This also explains the warning, as you’re trying to assign a nil pointer (that’s a NULL for objects basically) to a non-object.
Regarding your second question, yes. You can think of primitive variables as being part of the object, so when it’s deallocated the vars will not exist anymore.
But when you have a
NSString *in an object, it’s just a pointer to another object. If you dealloc the former, the pointer will be deleted, not theNSString. No one might point to it, it’s kind of lost in the air, occupying memory. So, before deleting the pointer, if you won’t need the object anymore, you send it a release message. That’s done in the dealloc method, since it’s called to “delete” and object and thus is a good place to delete also every other object that has no use anymore.