This is Autorelease.h in view mode; [Download] [Up]
#import <objc/Object.h>
/*
* This file provides classes based on NEXTSTEP's traditional base class Object
* with the autorelease features of OpenStep's NSObject.
*
* To make a class based on Object have autoreleasing do one of two things:
*
* 1) Make it a subclass of AutoreleaseObject and your done.
* or
* 2) Make it adhere to the Autorelease protocol and
* be certain that -retainCount = 1 after your -init
*/
/*
* Simple protocol to provide control of the objects reference count.
*/
@protocol Autorelease
- incrementRetainCount;
- decrementRetainCount;
- (unsigned int) retainCount;
@end
/*
* A base class that adheres to the above protocol.
*/
@interface AutoreleaseObject : Object <Autorelease>
{
unsigned int retainCount; /* reference count */
}
- init;
- free;
@end
/*
* A category that utilizes the protocol to provide autoreleasing.
*/
@interface Object (AutoreleaseCategory)
- autorelease;
- (void) release;
- retain;
- dealloc;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.