2000-03-05 17:39:33 +00:00
|
|
|
<html><head>
|
2000-09-22 13:45:58 +00:00
|
|
|
<title>NSObject</title>
|
2000-03-05 17:39:33 +00:00
|
|
|
</head>
|
|
|
|
<body>
|
2001-04-25 14:19:57 +00:00
|
|
|
<a href ="NSNumberFormatter.html">[Previous] </a>
|
|
|
|
<a href ="Base.html">[Up] </a>
|
2001-08-20 10:22:29 +00:00
|
|
|
<a href ="NSPipe.html">[Next] </a>
|
2000-03-05 17:39:33 +00:00
|
|
|
<h1>NSObject</h1>
|
2000-09-22 13:45:58 +00:00
|
|
|
<h3>Authors </h3>
|
|
|
|
<dl>
|
|
|
|
<dt><a href ="http://www.gnustep.org/developers/whoiswho.html">Richard Frith-Macdonald</a>
|
2000-03-05 17:39:33 +00:00
|
|
|
<dd>
|
2001-08-30 12:37:27 +00:00
|
|
|
<dt><a href ="http://www.gnustep.org/developers/whoiswho.html">Nicola Pero</a>
|
|
|
|
<dd>
|
2000-03-05 17:39:33 +00:00
|
|
|
</dl>
|
2001-03-03 10:00:31 +00:00
|
|
|
<p>Version: $Revision$</p>
|
|
|
|
<p>Date: $Date$</p>
|
2000-09-22 13:45:58 +00:00
|
|
|
<h2><a name ="cont-0">NSObject</a></h2>
|
|
|
|
<h2><a name ="NSObject">NSObject</a></h2>
|
|
|
|
<p><b>Declared in: </b> Foundation/NSObject.h</p>
|
|
|
|
<p><b>Conforms to: </b> NSObject
|
2000-03-05 17:39:33 +00:00
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
|
2001-08-30 12:37:27 +00:00
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>NSObject</code> is the root class (a root class is
|
|
|
|
a class with no superclass) of the gnustep base library
|
|
|
|
class hierarchy, so all classes normally inherit from
|
|
|
|
<code>NSObject</code>. There is an exception though:
|
|
|
|
<code>NSProxy</code> (which is used for remote messaging)
|
|
|
|
does not inherit from <code>NSObject</code>.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Unless you are really sure of what you are doing, all
|
|
|
|
your own classes should inherit (directly or indirectly)
|
|
|
|
from <code>NSObject</code> (or in special cases from
|
|
|
|
<code>NSProxy</code>). <code>NSObject</code> provides
|
|
|
|
the basic common functionality shared by all gnustep
|
|
|
|
classes and objects.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
The essential methods which must be implemented by all
|
|
|
|
classes for their instances to be usable within gnustep
|
|
|
|
are declared in a separate protocol, which is the
|
|
|
|
<code>NSObject</code> protocol. Both
|
|
|
|
<code>NSObject</code> and <code>NSProxy</code> conform to
|
|
|
|
this protocol, which means all objects in a gnustep
|
|
|
|
application will conform to this protocol (btw, if you
|
|
|
|
don't find a method of <code>NSObject</code> you are
|
|
|
|
looking for in this documentation, make sure you also
|
|
|
|
look into the documentation for the <code>NSObject</code>
|
|
|
|
protocol).
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Theoretically, in special cases you might need to
|
|
|
|
implement a new root class. If you do, you need to make
|
|
|
|
sure that your root class conforms (at least) to the
|
|
|
|
<code>NSObject</code> protocol, otherwise it will not
|
|
|
|
interact correctly with the gnustep framework. Said
|
|
|
|
that, I must note that I have never seen a case in which
|
|
|
|
a new root class is needed.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>NSObject</code> is a root class, which implies that
|
|
|
|
instance methods of <code>NSObject</code> are treated in
|
|
|
|
a special way by the Objective-C runtime. This is an
|
|
|
|
exception to the normal way messaging works with class
|
|
|
|
and instance methods: if the Objective-C runtime can't
|
|
|
|
find a class method for a class object, as a last resort
|
|
|
|
it looks for an instance method of the root class with
|
|
|
|
the same name, and executes it if it finds it. This
|
|
|
|
means that instance methods of the root class (such as
|
|
|
|
<code>NSObject</code>) can be performed by class objects
|
|
|
|
which inherit from that root class ! This can only
|
|
|
|
happen if the class doesn't have a class method with the
|
|
|
|
same name, otherwise that method - of course - takes the
|
|
|
|
precedence. Because of this exception,
|
|
|
|
<code>NSObject</code>'s instance methods are written in
|
|
|
|
such a way that they work both on <code>NSObject</code>'s
|
|
|
|
instances and on class objects.
|
|
|
|
</p>
|
|
|
|
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<h2>Instance Variables </h2>
|
2000-09-15 19:56:39 +00:00
|
|
|
<ul>
|
|
|
|
</ul>
|
2000-09-22 13:45:58 +00:00
|
|
|
<h2>Methods </h2>
|
2000-03-05 17:39:33 +00:00
|
|
|
<ul>
|
2001-04-25 14:19:57 +00:00
|
|
|
<li ><a href ="NSObject.html#method-0">+alloc</a>
|
|
|
|
<li ><a href ="NSObject.html#method-1">+allocWithZone:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-2">+cancelPreviousPerformRequestsWithTarget:selector:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-3">+class</a>
|
|
|
|
<li ><a href ="NSObject.html#method-4">+conformsToProtocol:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-5">+copyWithZone:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-6">+description</a>
|
|
|
|
<li ><a href ="NSObject.html#method-7">+descriptionWithLocale:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-8">+descriptionWithLocale:indent:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-9">+descriptionWithLocale:indent:to:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-10">+initialize</a>
|
|
|
|
<li ><a href ="NSObject.html#method-11">+instanceMethodForSelector:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-12">+instanceMethodSignatureForSelector:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-13">+instancesRespondToSelector:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-14">+load</a>
|
|
|
|
<li ><a href ="NSObject.html#method-15">+mutableCopyWithZone:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-16">+new</a>
|
|
|
|
<li ><a href ="NSObject.html#method-17">+poseAsClass:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-18">+setVersion:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-19">+superclass</a>
|
|
|
|
<li ><a href ="NSObject.html#method-20">+version</a>
|
2001-11-13 17:37:13 +00:00
|
|
|
<li ><a href ="NSObject.html#method-47">-_dealloc</a>
|
2001-04-25 14:19:57 +00:00
|
|
|
<li ><a href ="NSObject.html#method-21">-awakeAfterUsingCoder:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-22">-classForArchiver</a>
|
|
|
|
<li ><a href ="NSObject.html#method-23">-classForCoder</a>
|
|
|
|
<li ><a href ="NSObject.html#method-24">-classForPortCoder</a>
|
|
|
|
<li ><a href ="NSObject.html#method-25">-connection:handleRequest:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-26">-copy</a>
|
|
|
|
<li ><a href ="NSObject.html#method-27">-dealloc</a>
|
2001-11-13 17:37:13 +00:00
|
|
|
<li ><a href ="NSObject.html#method-45">-deallocNotificationsActive</a>
|
2001-04-25 14:19:57 +00:00
|
|
|
<li ><a href ="NSObject.html#method-28">-description</a>
|
|
|
|
<li ><a href ="NSObject.html#method-29">-descriptionWithLocale:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-30">-descriptionWithLocale:indent:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-31">-descriptionWithLocale:indent:to:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-32">-doesNotRecognizeSelector:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-33">-forwardInvocation:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-34">-hash</a>
|
|
|
|
<li ><a href ="NSObject.html#method-35">-init</a>
|
|
|
|
<li ><a href ="NSObject.html#method-36">-isEqual:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-37">-methodForSelector:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-38">-methodSignatureForSelector:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-39">-mutableCopy</a>
|
|
|
|
<li ><a href ="NSObject.html#method-40">-performSelector:withObject:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-41">-performSelector:withObject:afterDelay:inModes:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-42">-replacementObjectForArchiver:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-43">-replacementObjectForCoder:</a>
|
|
|
|
<li ><a href ="NSObject.html#method-44">-replacementObjectForPortCoder:</a>
|
2001-11-13 17:37:13 +00:00
|
|
|
<li ><a href ="NSObject.html#method-46">-setDeallocNotificationsActive:</a>
|
2000-03-05 17:39:33 +00:00
|
|
|
</ul>
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr><h2>Class Methods </h2>
|
|
|
|
<h3><a name ="method-0">alloc</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (id) <b>alloc</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2001-08-30 12:37:27 +00:00
|
|
|
Allocates a new instance of the receiver from the default
|
|
|
|
zone, by invoking <code>allocWithZone:</code> with
|
|
|
|
<code>NSDefaultMallocZone()</code> as the zone argument.
|
|
|
|
Returns the created instance.
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-1">allocWithZone:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (id) <b>allocWithZone:</b> (NSZone*)zone;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2001-08-30 12:37:27 +00:00
|
|
|
This is the basic method to create a new instance. It
|
|
|
|
allocates a new instance of the receiver from the specified
|
|
|
|
memory zone.
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Memory for an instance of the receiver is allocated; a
|
|
|
|
pointer to this newly created instance is returned. All
|
|
|
|
instance variables are set to 0 except the
|
|
|
|
<code>isa</code> pointer which is set to point to the
|
|
|
|
object class. No initialization of the instance is
|
|
|
|
performed: it is your responsibility to initialize the
|
|
|
|
instance by calling an appropriate <code>init</code>
|
|
|
|
method. If you are not using the garbage collector, it is
|
|
|
|
also your responsibility to make sure the returned
|
|
|
|
instance is destroyed when you finish using it, by calling
|
|
|
|
the <code>release</code> method to destroy the instance
|
|
|
|
directly, or by using <code>autorelease</code> and
|
|
|
|
autorelease pools.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
You do not normally need to override this method in
|
|
|
|
subclasses, unless you are implementing a class which for
|
|
|
|
some reasons silently allocates instances of another class
|
|
|
|
(this is typically needed to implement class clusters and
|
|
|
|
similar design schemes).
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
If you have turned on debugging of object allocation (by
|
|
|
|
calling the <code>GSDebugAllocationActive</code>
|
|
|
|
function), this method will also update the various
|
|
|
|
debugging counts and monitors of allocated objects, which
|
|
|
|
you can access using the <code>GSDebugAllocation...</code>
|
|
|
|
functions.
|
|
|
|
</p>
|
|
|
|
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-2">cancelPreviousPerformRequestsWithTarget:selector:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (void) <b>cancelPreviousPerformRequestsWithTarget:</b> (id)aTarget <b>selector:</b> (SEL)aSelector;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-3">class</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (Class) <b>class</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2001-08-30 12:37:27 +00:00
|
|
|
Returns the receiver.
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-4">conformsToProtocol:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (BOOL) <b>conformsToProtocol:</b> (Protocol*)aProtocol;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-5">copyWithZone:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (id) <b>copyWithZone:</b> (NSZone*)zone;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-6">description</a></h3>
|
|
|
|
+ (NSString*) <b>description</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-03-17 13:13:08 +00:00
|
|
|
The <code>description</code> factory method describes the class
|
|
|
|
of the receiver. In the default GNUstep implementation, this
|
|
|
|
simply returns the name of the class as an NSString object.
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-7">descriptionWithLocale:</a></h3>
|
|
|
|
+ (NSString*) <b>descriptionWithLocale:</b> (NSDictionary*)aLocale;<br>
|
|
|
|
Standards: GNUstep<br>
|
2000-03-17 13:13:08 +00:00
|
|
|
|
|
|
|
The default (NSOBject) implementation of this method simply calls
|
|
|
|
the <code>description</code> method and discards the locale
|
|
|
|
information.
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-8">descriptionWithLocale:indent:</a></h3>
|
|
|
|
+ (NSString*) <b>descriptionWithLocale:</b> (NSDictionary*)aLocale <b>indent:</b> (unsigned int)level;<br>
|
|
|
|
Standards: GNUstep<br>
|
2000-03-17 13:13:08 +00:00
|
|
|
|
|
|
|
The default (NSObject) implementation of this method simply calls
|
|
|
|
the <code>descriptionWithLocale:</code> method and discards the
|
|
|
|
level information.
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-9">descriptionWithLocale:indent:to:</a></h3>
|
|
|
|
+ (NSString*) <b>descriptionWithLocale:</b> (NSDictionary*)aLocale <b>indent:</b> (unsigned int)level <b>to:</b> (id<GNUDescriptionDestination>)output;<br>
|
|
|
|
Standards: GNUstep<br>
|
2000-03-17 13:13:08 +00:00
|
|
|
|
|
|
|
The default (NSObject) implementation of this method simply calls
|
|
|
|
the <code>descriptionWithLocale:indent:</code> method and appends
|
|
|
|
the value returned by that method to the output object.
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-10">initialize</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (void) <b>initialize</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-11">instanceMethodForSelector:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (IMP) <b>instanceMethodForSelector:</b> (SEL)aSelector;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-12">instanceMethodSignatureForSelector:</a></h3>
|
|
|
|
+ (NSMethodSignature*) <b>instanceMethodSignatureForSelector:</b> (SEL)aSelector;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2001-04-10 03:27:01 +00:00
|
|
|
Returns a method signature object representing the
|
|
|
|
method implemented for instsances of this class which
|
|
|
|
corresponds to the supplied selector.
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-13">instancesRespondToSelector:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (BOOL) <b>instancesRespondToSelector:</b> (SEL)aSelector;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-14">load</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (void) <b>load</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-15">mutableCopyWithZone:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (id) <b>mutableCopyWithZone:</b> (NSZone*)zone;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-16">new</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (id) <b>new</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2001-08-30 12:37:27 +00:00
|
|
|
This method is a short-hand for alloc followed by init, that is,
|
|
|
|
<p>
|
|
|
|
<code>
|
|
|
|
NSObject *object = [NSObject new];
|
|
|
|
</code></p>
|
|
|
|
|
|
|
|
is exactly the same as
|
|
|
|
<p>
|
|
|
|
<code>
|
|
|
|
NSObject *object = [[NSObject alloc] init];
|
|
|
|
</code></p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
This is a general convention: all <code>new...</code>
|
|
|
|
methods are supposed to return a newly allocated and
|
|
|
|
initialized instance, as would be generated by an
|
|
|
|
<code>alloc</code> method followed by a corresponding
|
|
|
|
<code>init...</code> method. Please note that if you are
|
|
|
|
not using a garbage collector, this means that instances
|
|
|
|
generated by the <code>new...</code> methods are not
|
|
|
|
autoreleased, that is, you are responsible for releasing
|
|
|
|
(autoreleasing) the instances yourself. So when you use
|
|
|
|
<code>new</code> you typically do something like:
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>
|
|
|
|
NSMutableArray *array = AUTORELEASE ([NSMutableArray new]);
|
|
|
|
</code>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
You do no normally need to override <code>new</code> in
|
|
|
|
subclasses, because if you override <code>init</code> (and
|
|
|
|
optionally <code>allocWithZone:</code> if you really
|
|
|
|
need), <code>new</code> will automatically use your
|
|
|
|
subclass methods.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
You might need instead to define new <code>new...</code>
|
|
|
|
methods specific to your subclass to match any
|
|
|
|
<code>init...</code> specific to your subclass. For
|
|
|
|
example, if your subclass defines
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>-initWithName:</code>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
it might be handy for you to have a
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>+newWithName:</code>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
which combines <code>alloc</code> and
|
|
|
|
<code>initWithName:</code>. You would implement it as follows:
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>
|
|
|
|
+ (id) newWithName: (NSString *)aName
|
|
|
|
{
|
|
|
|
return [[self alloc] initWithName: aName];
|
|
|
|
}
|
|
|
|
</code>
|
|
|
|
</p>
|
|
|
|
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-17">poseAsClass:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (void) <b>poseAsClass:</b> (Class)aClass;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-18">setVersion:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (void) <b>setVersion:</b> (int)aVersion;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-19">superclass</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (Class) <b>superclass</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-20">version</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
+ (int) <b>version</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<hr><h2>Instances Methods </h2>
|
|
|
|
<h3><a name ="method-21">awakeAfterUsingCoder:</a></h3>
|
|
|
|
- (id) <b>awakeAfterUsingCoder:</b> (NSCoder*)aDecoder;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-22">classForArchiver</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (Class) <b>classForArchiver</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-23">classForCoder</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (Class) <b>classForCoder</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-24">classForPortCoder</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (Class) <b>classForPortCoder</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-25">connection:handleRequest:</a></h3>
|
|
|
|
- (BOOL) <b>connection:</b> (NSConnection*)connection <b>handleRequest:</b> (NSDistantObjectRequest*)doreq;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-26">copy</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (id) <b>copy</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-27">dealloc</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (void) <b>dealloc</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2001-08-30 12:37:27 +00:00
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>NSObject</code>'s implementation of this method
|
|
|
|
destroys the receiver, by returning the memory allocated
|
|
|
|
to the receiver to the system. After this method has been
|
|
|
|
called on an instance, you must not refer the instance in
|
|
|
|
any way, because it does not exist any longer. If you do,
|
|
|
|
it is a bug and your program might even crash with a
|
|
|
|
segmentation fault.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
If you have turned on the debugging facilities for
|
|
|
|
instance allocation, <code>NSObject</code>'s
|
|
|
|
implementation of this method will also update the various
|
|
|
|
counts and monitors of allocated instances (see the
|
|
|
|
<code>GSDebugAllocation...</code> functions for more
|
|
|
|
info).
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Normally you are supposed to manage the memory taken by
|
|
|
|
objects by using the high level interface provided by the
|
|
|
|
<code>retain</code>, <code>release</code> and
|
|
|
|
<code>autorelease</code> methods (or better by the
|
|
|
|
corresponding macros <code>RETAIN</code>,
|
|
|
|
<code>RELEASE</code> and <code>AUTORELEASE</code>), and by
|
|
|
|
autorelease pools and such; whenever the
|
|
|
|
release/autorelease mechanism determines that an object is
|
|
|
|
no longer needed (which happens when its retain count
|
|
|
|
reaches 0), it will call the <code>dealloc</code> method
|
|
|
|
to actually deallocate the object. This means that normally,
|
|
|
|
you should not need to call <code>dealloc</code> directly as
|
|
|
|
the gnustep base library automatically calls it for you when
|
|
|
|
the retain count of an object reaches 0.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Because the <code>dealloc</code> method will be called
|
|
|
|
when an instance is being destroyed, if instances of your
|
|
|
|
subclass use objects or resources (as it happens for most
|
|
|
|
useful classes), you must override <code>dealloc</code> in
|
|
|
|
subclasses to release all objects and resources which are
|
|
|
|
used by the instance, otherwise these objects and
|
|
|
|
resources would be leaked. In the subclass
|
|
|
|
implementation, you should first release all your subclass
|
|
|
|
specific objects and resources, and then invoke super's
|
|
|
|
implementation (which will do the same, and so on up in
|
|
|
|
the class hierarchy to <code>NSObject</code>'s
|
|
|
|
implementation, which finally destroys the object). Here
|
|
|
|
is an example of the implementation of
|
|
|
|
<code>dealloc</code> for a subclass whose instances have a
|
|
|
|
single instance variable <code>name</code> which needs to
|
|
|
|
be released when an instance is deallocated:
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>
|
|
|
|
- (void) dealloc
|
|
|
|
{
|
|
|
|
RELEASE (name);
|
|
|
|
[super dealloc];
|
|
|
|
}
|
|
|
|
</code>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<code>dealloc</code> might contain code to release not
|
|
|
|
only objects, but also other resources, such as open
|
|
|
|
files, network connections, raw memory allocated in other
|
|
|
|
ways, etc.
|
|
|
|
</p>
|
|
|
|
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-28">description</a></h3>
|
|
|
|
- (NSString*) <b>description</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-03-17 13:13:08 +00:00
|
|
|
<p>
|
|
|
|
|
|
|
|
The <code>description</code> method describes the reciever.
|
|
|
|
In the default GNUstep implementation, this returns an NSString
|
|
|
|
object giving the name of the class of the receiver and the
|
|
|
|
hexadecimal representation of the recievers address enclosed
|
|
|
|
in angle brackets.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Generally, classes other than NSObject will override this method
|
|
|
|
to provide a more informative description of their instances.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-29">descriptionWithLocale:</a></h3>
|
|
|
|
- (NSString*) <b>descriptionWithLocale:</b> (NSDictionary*)aLocale;<br>
|
|
|
|
Standards: GNUstep<br>
|
2000-03-17 13:13:08 +00:00
|
|
|
|
|
|
|
The default (NSOBject) implementation of this method simply calls
|
|
|
|
the <code>description</code> method and discards the locale
|
|
|
|
information.
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-30">descriptionWithLocale:indent:</a></h3>
|
|
|
|
- (NSString*) <b>descriptionWithLocale:</b> (NSDictionary*)aLocale <b>indent:</b> (unsigned int)level;<br>
|
|
|
|
Standards: GNUstep<br>
|
2000-03-17 13:13:08 +00:00
|
|
|
|
|
|
|
The default (NSObject) implementation of this method simply calls
|
|
|
|
the <code>descriptionWithLocale:</code> method and discards the
|
|
|
|
level information.
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-31">descriptionWithLocale:indent:to:</a></h3>
|
|
|
|
- (NSString*) <b>descriptionWithLocale:</b> (NSDictionary*)aLocale <b>indent:</b> (unsigned int)level <b>to:</b> (id<GNUDescriptionDestination>)output;<br>
|
|
|
|
Standards: GNUstep<br>
|
2000-03-17 13:13:08 +00:00
|
|
|
|
|
|
|
The default (NSObject) implementation of this method simply calls
|
|
|
|
the <code>descriptionWithLocale:indent:</code> method and appends
|
|
|
|
the value returned by that method to the output object.
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Property-list classes (NSString, NSArray, NSDictionary and
|
|
|
|
NSData) will override this method in order to efficiently
|
|
|
|
write descriptions of themselves into property lists.
|
|
|
|
</p>
|
|
|
|
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-32">doesNotRecognizeSelector:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (void) <b>doesNotRecognizeSelector:</b> (SEL)aSelector;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-33">forwardInvocation:</a></h3>
|
|
|
|
- (void) <b>forwardInvocation:</b> (NSInvocation*)anInvocation;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-34">hash</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (unsigned int) <b>hash</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-35">init</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (id) <b>init</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-36">isEqual:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (BOOL) <b>isEqual:</b> (id)anObject;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-37">methodForSelector:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (IMP) <b>methodForSelector:</b> (SEL)aSelector;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-38">methodSignatureForSelector:</a></h3>
|
|
|
|
- (NSMethodSignature*) <b>methodSignatureForSelector:</b> (SEL)aSelector;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2001-04-10 03:27:01 +00:00
|
|
|
Returns a method signature object representing the
|
|
|
|
method implemented in this object which corresponds to
|
|
|
|
the supplied selector.
|
2000-03-05 17:39:33 +00:00
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-39">mutableCopy</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (id) <b>mutableCopy</b>;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-40">performSelector:withObject:</a></h3>
|
2000-07-04 19:53:39 +00:00
|
|
|
- (void) <b>performSelector:</b> (SEL)aSelector <b>withObject:</b> (id)anArgument;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-41">performSelector:withObject:afterDelay:inModes:</a></h3>
|
|
|
|
- (void) <b>performSelector:</b> (SEL)aSelector <b>withObject:</b> (id)anArgument <b>afterDelay:</b> (NSTimeInterval)delay <b>inModes:</b> (NSArray*)modes;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-42">replacementObjectForArchiver:</a></h3>
|
|
|
|
- (id) <b>replacementObjectForArchiver:</b> (NSArchiver*)anArchiver;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-43">replacementObjectForCoder:</a></h3>
|
|
|
|
- (id) <b>replacementObjectForCoder:</b> (NSCoder*)aCoder;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-44">replacementObjectForPortCoder:</a></h3>
|
|
|
|
- (id) <b>replacementObjectForPortCoder:</b> (NSPortCoder*)aCoder;<br>
|
2000-03-05 17:39:33 +00:00
|
|
|
|
|
|
|
|
2001-11-13 17:37:13 +00:00
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-45">deallocNotificationsActive</a></h3>
|
|
|
|
- (BOOL) <b>deallocNotificationsActive</b>;<br>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Returns a boolean indicating whether deallocation notification
|
|
|
|
has been turned on.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
If deallocation notification is turned on, whenever an objects
|
|
|
|
retain count reaches zero (and it would normally be deallocated)
|
|
|
|
the <em>_dealloc</em> methiod is called and the object is only
|
|
|
|
deallocated if that method returns YES.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-46">setDeallocNotificationsActive:</a></h3>
|
|
|
|
- (void) <b>setDeallocNotificationsActive:</b> (BOOL)flag;<br>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Turns on (or off) deallocation notification.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
If deallocation notification is turned on, whenever an objects
|
|
|
|
retain count reaches zero (and it would normally be deallocated)
|
|
|
|
the <em>_dealloc</em> methiod is called and the object is only
|
|
|
|
deallocated if that method returns YES.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
<h3><a name ="method-47">_dealloc</a></h3>
|
|
|
|
- (BOOL) <b>_dealloc</b>;<br>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
Returns a boolean indicating whether the receiver should be
|
|
|
|
deallocated or not. The default implementation returns YES.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
This method is called when an objects retain count reaches
|
|
|
|
zero (if deallocation notifications are active).
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
This method is provided so that you can take some sort of
|
|
|
|
action when objects are deallocated ... normally you would
|
|
|
|
override this method in your classes, but you could also
|
|
|
|
override it in a category of NSObject - and perform some
|
|
|
|
action whenever <em>any</em> object is deallocated.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
<hr>
|
2000-03-05 17:39:33 +00:00
|
|
|
</body>
|
|
|
|
|
2000-09-22 13:45:58 +00:00
|
|
|
</html>
|