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.