Deallocates the memory occupied by the receiver.
SDKs
- iOS 2.0+
- macOS 10.0+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
Framework
- Objective-C Runtime
Declaration
- (void)dealloc;
Discussion
Subsequent messages to the receiver may generate an error indicating that a message was sent to a deallocated object (provided the deallocated memory hasn’t been reused yet).
You override this method to dispose of resources other than the object’s instance variables, for example:
- (void)dealloc {
free(myBigBlockOfMemory);
}
In an implementation of dealloc
, do not invoke the superclass’s implementation. You should try to avoid managing the lifetime of limited resources such as file descriptors using dealloc
.
You never send a dealloc
message directly. Instead, an object’s dealloc
method is invoked by the runtime. See Advanced Memory Management Programming Guide for more details.
Special Considerations
When not using ARC, your implementation of dealloc
must invoke the superclass’s implementation as its last instruction.