libs-base/Documentation/gsdoc/NSFunctions.html

123 lines
3.3 KiB
HTML
Raw Normal View History

<html><head>
<title>NSFunctions</title>
</head>
<body>
<a href ="Base.html">[Up]</a>
<h1>NSFunctions</h1>
<h3>Authors </h3>
<dl>
<dt><a href ="http://www.gnustep.org/developers/whoiswho.html">Richard Frith-Macdonald</a>
<dd>
</dl>
<p>Version: $Revision$</p>
<p>Date: $Date$</p>
<h2><a name ="cont-0">Functions</a></h2>
<h2><a name ="function-0">GSCurrentThread</a></h2>
<p><b>Declared in: </b> Foundation/NSThread.h</p>
<b>Prototype: </b> NSThread* GSCurrentThread()<br>
<p>
This function is a GNUstep extension. It pretty much
duplicates the functionality of [NSThread +currentThread]
but is more efficient and is used internally throughout
GNUstep.
</p>
<p>
Returns the current thread. Could perhaps return <code>nil</code>
if executing a thread that was started outside the GNUstep
environment and not registered (this should not happen in a
well-coded application).
</p>
<hr>
<h2><a name ="function-1">GSRegisterCurrentThread</a></h2>
<p><b>Declared in: </b> Foundation/NSThread.h</p>
<b>Prototype: </b> BOOL GSRegisterCurrentThread()<br>
<p>
This functiion is provided to let threads started by some other
software library register themselves to be used with the
GNUstep system. All such threads should call this function
before attempting to use any GNUstep objects.
</p>
<p>
Returns <code>YES</code> if the thread can be registered,
<code>NO</code> if it is already registered.
</p>
<p>
Sends out a <code>NSWillBecomeMultiThreadedNotification</code>
if the process was not already multithreaded.
</p>
<hr>
<h2><a name ="function-2">GSUnregisterCurrentThread</a></h2>
<p><b>Declared in: </b> Foundation/NSThread.h</p>
<b>Prototype: </b> void GSUnregisterCurrentThread()<br>
<p>
This functiion is provided to let threads started by some other
software library unregister themselves from the GNUstep threading
system.
</p>
<p>
Calling this function causes a
<code>NSThreadWillExitNotification</code>
to be sent out, and destroys the GNUstep NSThread object
associated with the thread.
</p>
<hr>
<h2><a name ="cont-1">Types</a></h2>
<h3><a name ="NSRange">NSRange</a></h3>
<p><b>Declared in: </b> Foundation/NSRange.h</p>
<b>typedef </b>
struct { unsigned long location; unsigned long length; }
NSRange<br>
<p>
The NSRange type is used to specify ranges of locations,
typically items in an array, characters in a string, and bytes
in a data object.
</p>
<p>
As 'boundary' or 'fencepost' errors are a particularly common
problem in programming, it is important that you understand
how an NSRange works.
</p>
<p>
An NSRange consists of a location and a length. The points
that are considered to lie in a range are the integers from
the location to the location plus the length, so the number
of points in a range is the length of the range plus one.<br>
However, if you consider these points like the marks on a
ruler, you can only store information <strong>between</strong>
points. So the number of items that can be stored in a range
is the length of the range.
</p>
<hr>
</body>
</html>