VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /usr/share/doc/gnustep-base-doc/Base/ProgrammingManual/gs-base/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/gnustep-base-doc/Base/ProgrammingManual/gs-base/index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Top (Objective-C GNUstep Base Programming Manual)</title>

<meta name="description" content="Top (Objective-C GNUstep Base Programming Manual)">
<meta name="keywords" content="Top (Objective-C GNUstep Base Programming Manual)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="Make.html" rel="index" title="Make">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Introduction.html" rel="next" title="Introduction">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<h1 class="settitle" align="center">Objective-C GNUstep Base Programming Manual</h1>





<span id="SEC_Contents"></span>
<h2 class="contents-heading">Table of Contents</h2>

<div class="contents">

<ul class="no-bullet">
  <li><a id="toc-Introduction-1" href="Introduction.html#Introduction">1 Introduction</a>
  <ul class="no-bullet">
    <li><a id="toc-What-is-Object_002dOriented-Programming_003f" href="Introduction.html#What-is-Object_002dOriented-Programming_003f">1.1 What is Object-Oriented Programming?</a>
    <ul class="no-bullet">
      <li><a id="toc-Some-Basic-OO-Terminology" href="Introduction.html#Some-Basic-OO-Terminology">1.1.1 Some Basic OO Terminology</a></li>
    </ul></li>
    <li><a id="toc-What-is-Objective_002dC_003f" href="Introduction.html#What-is-Objective_002dC_003f">1.2 What is Objective-C?</a></li>
    <li><a id="toc-History" href="Introduction.html#History">1.3 History</a></li>
    <li><a id="toc-What-is-GNUstep_003f" href="Introduction.html#What-is-GNUstep_003f">1.4 What is GNUstep?</a>
    <ul class="no-bullet">
      <li><a id="toc-GNUstep-Base-Library" href="Introduction.html#GNUstep-Base-Library">1.4.1 GNUstep Base Library</a></li>
      <li><a id="toc-GNUstep-Make-Utility" href="Introduction.html#GNUstep-Make-Utility">1.4.2 GNUstep Make Utility</a></li>
      <li><a id="toc-A-Word-on-the-Graphical-Environment" href="Introduction.html#A-Word-on-the-Graphical-Environment">1.4.3 A Word on the Graphical Environment</a></li>
      <li><a id="toc-The-GNUstep-Directory-Layout" href="Introduction.html#The-GNUstep-Directory-Layout">1.4.4 The GNUstep Directory Layout</a></li>
    </ul></li>
    <li><a id="toc-Building-Your-First-Objective_002dC-Program" href="Introduction.html#Building-Your-First-Objective_002dC-Program">1.5 Building Your First Objective-C Program</a></li>
  </ul></li>
  <li><a id="toc-The-Objective_002dC-Language" href="Objective_002dC.html#Objective_002dC">2 The Objective-C Language</a>
  <ul class="no-bullet">
    <li><a id="toc-Non-OO-Additions" href="Objective_002dC.html#Non-OO-Additions">2.1 Non OO Additions</a></li>
    <li><a id="toc-Objects-1" href="Objective_002dC.html#Objects-1">2.2 Objects</a>
    <ul class="no-bullet">
      <li><a id="toc-Id-and-nil" href="Objective_002dC.html#Id-and-nil">2.2.1 Id and nil</a></li>
      <li><a id="toc-Messages" href="Objective_002dC.html#Messages">2.2.2 Messages</a></li>
      <li><a id="toc-Polymorphism" href="Objective_002dC.html#Polymorphism">2.2.3 Polymorphism</a></li>
    </ul></li>
    <li><a id="toc-Classes-1" href="Objective_002dC.html#Classes-1">2.3 Classes</a>
    <ul class="no-bullet">
      <li><a id="toc-Inheritance" href="Objective_002dC.html#Inheritance">2.3.1 Inheritance</a></li>
      <li><a id="toc-Inheritance-of-Methods" href="Objective_002dC.html#Inheritance-of-Methods">2.3.2 Inheritance of Methods</a></li>
      <li><a id="toc-Overriding-Methods" href="Objective_002dC.html#Overriding-Methods">2.3.3 Overriding Methods</a></li>
      <li><a id="toc-Abstract-Classes" href="Objective_002dC.html#Abstract-Classes">2.3.4 Abstract Classes</a></li>
      <li><a id="toc-Class-Clusters" href="Objective_002dC.html#Class-Clusters">2.3.5 Class Clusters</a></li>
    </ul></li>
    <li><a id="toc-NSObject_003a-The-Root-Class" href="Objective_002dC.html#NSObject_003a-The-Root-Class">2.4 NSObject: The Root Class</a>
    <ul class="no-bullet">
      <li><a id="toc-The-NSObject-Protocol" href="Objective_002dC.html#The-NSObject-Protocol">2.4.1 The NSObject Protocol</a></li>
    </ul></li>
    <li><a id="toc-Static-Typing" href="Objective_002dC.html#Static-Typing">2.5 Static Typing</a>
    <ul class="no-bullet">
      <li><a id="toc-Type-Introspection" href="Objective_002dC.html#Type-Introspection">2.5.1 Type Introspection</a></li>
      <li><a id="toc-Referring-to-Instance-Variables" href="Objective_002dC.html#Referring-to-Instance-Variables">2.5.2 Referring to Instance Variables</a></li>
    </ul></li>
    <li><a id="toc-Working-with-Class-Objects" href="Objective_002dC.html#Working-with-Class-Objects">2.6 Working with Class Objects</a>
    <ul class="no-bullet">
      <li><a id="toc-Locating-Classes-Dynamically" href="Objective_002dC.html#Locating-Classes-Dynamically">2.6.1 Locating Classes Dynamically</a></li>
    </ul></li>
    <li><a id="toc-Naming-Constraints-and-Conventions" href="Objective_002dC.html#Naming-Constraints-and-Conventions">2.7 Naming Constraints and Conventions</a></li>
    <li><a id="toc-Strings-in-GNUstep" href="Objective_002dC.html#Strings-in-GNUstep">2.8 Strings in GNUstep</a>
    <ul class="no-bullet">
      <li><a id="toc-Creating-NSString-Static-Instances" href="Objective_002dC.html#Creating-NSString-Static-Instances">2.8.1 Creating NSString Static Instances</a></li>
      <li><a id="toc-NSString-_002bstringWithFormat_003a" href="Objective_002dC.html#NSString-_002bstringWithFormat_003a">2.8.2 NSString  +stringWithFormat:</a></li>
      <li><a id="toc-C-String-Conversion" href="Objective_002dC.html#C-String-Conversion">2.8.3 C String Conversion</a></li>
      <li><a id="toc-NSMutableString" href="Objective_002dC.html#NSMutableString">2.8.4 NSMutableString</a></li>
      <li><a id="toc-Loading-and-Saving-Strings" href="Objective_002dC.html#Loading-and-Saving-Strings">2.8.5 Loading and Saving Strings</a></li>
    </ul></li>
  </ul></li>
  <li><a id="toc-Working-with-Objects" href="Objects.html#Objects">3 Working with Objects</a>
  <ul class="no-bullet">
    <li><a id="toc-Initializing-and-Allocating-Objects" href="Objects.html#Initializing-and-Allocating-Objects">3.1 Initializing and Allocating Objects</a>
    <ul class="no-bullet">
      <li><a id="toc-Initialization-with-Arguments" href="Objects.html#Initialization-with-Arguments">3.1.1 Initialization with Arguments</a></li>
      <li><a id="toc-Memory-Allocation-and-Zones" href="Objects.html#Memory-Allocation-and-Zones">3.1.2 Memory Allocation and Zones</a></li>
      <li><a id="toc-Memory-Deallocation" href="Objects.html#Memory-Deallocation">3.1.3 Memory Deallocation</a></li>
    </ul></li>
    <li><a id="toc-Memory-Management" href="Objects.html#Memory-Management">3.2 Memory Management</a>
    <ul class="no-bullet">
      <li><a id="toc-Explicit-Memory-Management" href="Objects.html#Explicit-Memory-Management">3.2.1 Explicit Memory Management</a></li>
      <li><a id="toc-OpenStep_002dStyle-_0028Retain_002fRelease_0029-Memory-Management" href="Objects.html#OpenStep_002dStyle-_0028Retain_002fRelease_0029-Memory-Management">3.2.2 OpenStep-Style (Retain/Release) Memory Management</a>
      <ul class="no-bullet">
        <li><a id="toc-Autorelease-Pools" href="Objects.html#Autorelease-Pools">3.2.2.1 Autorelease Pools</a></li>
        <li><a id="toc-Avoiding-Retain-Cycles" href="Objects.html#Avoiding-Retain-Cycles">3.2.2.2 Avoiding Retain Cycles</a></li>
        <li><a id="toc-Summary" href="Objects.html#Summary">3.2.2.3 Summary</a></li>
      </ul></li>
      <li><a id="toc-Garbage-Collection-Based-Memory-Management" href="Objects.html#Garbage-Collection-Based-Memory-Management">3.2.3 Garbage Collection Based Memory Management</a></li>
      <li><a id="toc-Current-Recommendations" href="Objects.html#Current-Recommendations">3.2.4 Current Recommendations</a></li>
    </ul></li>
  </ul></li>
  <li><a id="toc-Writing-New-Classes" href="Classes.html#Classes">4 Writing New Classes</a>
  <ul class="no-bullet">
    <li><a id="toc-Interface" href="Classes.html#Interface">4.1 Interface</a>
    <ul class="no-bullet">
      <li><a id="toc-Interface-Capabilities" href="Classes.html#Interface-Capabilities">4.1.1 Interface Capabilities</a></li>
      <li><a id="toc-Including-Interfaces" href="Classes.html#Including-Interfaces">4.1.2 Including Interfaces</a></li>
      <li><a id="toc-Referring-to-Classes-_002d-_0040class" href="Classes.html#Referring-to-Classes-_002d-_0040class">4.1.3 Referring to Classes - @class</a></li>
    </ul></li>
    <li><a id="toc-Implementation" href="Classes.html#Implementation">4.2 Implementation</a>
    <ul class="no-bullet">
      <li><a id="toc-Writing-an-Implementation" href="Classes.html#Writing-an-Implementation">4.2.1 Writing an Implementation</a></li>
      <li><a id="toc-Super-and-Self" href="Classes.html#Super-and-Self">4.2.2 Super and Self</a></li>
      <li><a id="toc-Instance-Initialization" href="Classes.html#Instance-Initialization">4.2.3 Instance Initialization</a></li>
      <li><a id="toc-Flexible-Initialization" href="Classes.html#Flexible-Initialization">4.2.4 Flexible Initialization</a></li>
      <li><a id="toc-Instance-Deallocation" href="Classes.html#Instance-Deallocation">4.2.5 Instance Deallocation</a></li>
    </ul></li>
    <li><a id="toc-Protocols" href="Classes.html#Protocols">4.3 Protocols</a>
    <ul class="no-bullet">
      <li><a id="toc-Declaring-a-Formal-Protocol" href="Classes.html#Declaring-a-Formal-Protocol">4.3.1 Declaring a Formal Protocol</a></li>
      <li><a id="toc-Implementing-a-Formal-Protocol" href="Classes.html#Implementing-a-Formal-Protocol">4.3.2 Implementing a Formal Protocol</a></li>
      <li><a id="toc-Using-a-Formal-Protocol" href="Classes.html#Using-a-Formal-Protocol">4.3.3 Using a Formal Protocol</a></li>
    </ul></li>
    <li><a id="toc-Categories" href="Classes.html#Categories">4.4 Categories</a>
    <ul class="no-bullet">
      <li><a id="toc-Category-Overrides" href="Classes.html#Category-Overrides">4.4.1 Category Overrides</a></li>
      <li><a id="toc-Categories-as-an-Implementation-Tool" href="Classes.html#Categories-as-an-Implementation-Tool">4.4.2 Categories as an Implementation Tool</a></li>
      <li><a id="toc-Categories-and-Protocols" href="Classes.html#Categories-and-Protocols">4.4.3 Categories and Protocols</a></li>
    </ul></li>
    <li><a id="toc-Simulating-Private-and-Protected-Methods" href="Classes.html#Simulating-Private-and-Protected-Methods">4.5 Simulating Private and Protected Methods</a></li>
    <li><a id="toc-Simulating-Class-Variables" href="Classes.html#Simulating-Class-Variables">4.6 Simulating Class Variables</a></li>
  </ul></li>
  <li><a id="toc-Advanced-Messaging-1" href="Advanced-Messaging.html#Advanced-Messaging">5 Advanced Messaging</a>
  <ul class="no-bullet">
    <li><a id="toc-How-Messaging-Works" href="Advanced-Messaging.html#How-Messaging-Works">5.1 How Messaging Works</a></li>
    <li><a id="toc-Selectors" href="Advanced-Messaging.html#Selectors">5.2 Selectors</a>
    <ul class="no-bullet">
      <li><a id="toc-The-Target_002dAction-Paradigm" href="Advanced-Messaging.html#The-Target_002dAction-Paradigm">5.2.1 The Target-Action Paradigm</a></li>
      <li><a id="toc-Obtaining-Selectors" href="Advanced-Messaging.html#Obtaining-Selectors">5.2.2 Obtaining Selectors</a></li>
      <li><a id="toc-Avoiding-Messaging-Errors-when-an-Implementation-is-Not-Found" href="Advanced-Messaging.html#Avoiding-Messaging-Errors-when-an-Implementation-is-Not-Found">5.2.3 Avoiding Messaging Errors when an Implementation is Not Found</a></li>
    </ul></li>
    <li><a id="toc-Forwarding" href="Advanced-Messaging.html#Forwarding">5.3 Forwarding</a></li>
    <li><a id="toc-Implementations" href="Advanced-Messaging.html#Implementations">5.4 Implementations</a></li>
  </ul></li>
  <li><a id="toc-Exception-Handling_002c-Logging_002c-and-Assertions" href="Exception-Handling.html#Exception-Handling">6 Exception Handling, Logging, and Assertions</a>
  <ul class="no-bullet">
    <li><a id="toc-Exceptions" href="Exception-Handling.html#Exceptions">6.1 Exceptions</a>
    <ul class="no-bullet">
      <li><a id="toc-Catching-and-Handling-Exceptions" href="Exception-Handling.html#Catching-and-Handling-Exceptions">6.1.1 Catching and Handling Exceptions</a></li>
      <li><a id="toc-Passing-Exceptions-Up-the-Call-Stack" href="Exception-Handling.html#Passing-Exceptions-Up-the-Call-Stack">6.1.2 Passing Exceptions Up the Call Stack</a></li>
      <li><a id="toc-Where-do-Exceptions-Originate_003f" href="Exception-Handling.html#Where-do-Exceptions-Originate_003f">6.1.3 Where do Exceptions Originate?</a></li>
      <li><a id="toc-Creating-Exceptions" href="Exception-Handling.html#Creating-Exceptions">6.1.4 Creating Exceptions</a></li>
      <li><a id="toc-When-to-Use-Exceptions" href="Exception-Handling.html#When-to-Use-Exceptions">6.1.5 When to Use Exceptions</a></li>
    </ul></li>
    <li><a id="toc-Logging" href="Exception-Handling.html#Logging">6.2 Logging</a>
    <ul class="no-bullet">
      <li><a id="toc-NSLog" href="Exception-Handling.html#NSLog">6.2.1 NSLog</a></li>
      <li><a id="toc-NSDebugLog_002c-NSWarnLog" href="Exception-Handling.html#NSDebugLog_002c-NSWarnLog">6.2.2 NSDebugLog, NSWarnLog</a></li>
      <li><a id="toc-Last-Resorts_003a-GSPrintf-and-fprintf" href="Exception-Handling.html#Last-Resorts_003a-GSPrintf-and-fprintf">6.2.3 Last Resorts: GSPrintf and fprintf</a></li>
      <li><a id="toc-Profiling-Facilities" href="Exception-Handling.html#Profiling-Facilities">6.2.4 Profiling Facilities</a></li>
    </ul></li>
    <li><a id="toc-Assertions" href="Exception-Handling.html#Assertions">6.3 Assertions</a>
    <ul class="no-bullet">
      <li><a id="toc-Assertions-and-their-Handling" href="Exception-Handling.html#Assertions-and-their-Handling">6.3.1 Assertions and their Handling</a></li>
      <li><a id="toc-Custom-Assertion-Handling" href="Exception-Handling.html#Custom-Assertion-Handling">6.3.2 Custom Assertion Handling</a></li>
    </ul></li>
    <li><a id="toc-Comparison-with-Java" href="Exception-Handling.html#Comparison-with-Java">6.4 Comparison with Java</a></li>
  </ul></li>
  <li><a id="toc-Distributed-Objects-1" href="Distributed-Objects.html#Distributed-Objects">7 Distributed Objects</a>
  <ul class="no-bullet">
    <li><a id="toc-Object-Interaction" href="Distributed-Objects.html#Object-Interaction">7.1 Object Interaction</a></li>
    <li><a id="toc-The-GNUstep-Solution" href="Distributed-Objects.html#The-GNUstep-Solution">7.2 The GNUstep Solution</a>
    <ul class="no-bullet">
      <li><a id="toc-Code-at-the-Server" href="Distributed-Objects.html#Code-at-the-Server">7.2.1 Code at the Server</a></li>
      <li><a id="toc-Code-at-the-Client" href="Distributed-Objects.html#Code-at-the-Client">7.2.2 Code at the Client</a></li>
      <li><a id="toc-Using-a-Protocol" href="Distributed-Objects.html#Using-a-Protocol">7.2.3 Using a Protocol</a></li>
      <li><a id="toc-Complete-Code-for-Telephone-Directory-Application" href="Distributed-Objects.html#Complete-Code-for-Telephone-Directory-Application">7.2.4 Complete Code for Telephone Directory Application</a></li>
      <li><a id="toc-GNUstep-Distributed-Objects-Name-Server" href="Distributed-Objects.html#GNUstep-Distributed-Objects-Name-Server">7.2.5 GNUstep Distributed Objects Name Server</a></li>
      <li><a id="toc-Look-Ma_002c-No-Stubs_0021" href="Distributed-Objects.html#Look-Ma_002c-No-Stubs_0021">7.2.6 Look Ma, No Stubs!</a></li>
    </ul></li>
    <li><a id="toc-A-More-Involved-Example" href="Distributed-Objects.html#A-More-Involved-Example">7.3 A More Involved Example</a>
    <ul class="no-bullet">
      <li><a id="toc-Protocol-Adopted-at-Client" href="Distributed-Objects.html#Protocol-Adopted-at-Client">7.3.1 Protocol Adopted at Client</a></li>
      <li><a id="toc-Protocol-Adopted-at-Server" href="Distributed-Objects.html#Protocol-Adopted-at-Server">7.3.2 Protocol Adopted at Server</a></li>
      <li><a id="toc-Code-at-the-Client-1" href="Distributed-Objects.html#Code-at-the-Client-1">7.3.3 Code at the Client</a></li>
      <li><a id="toc-Code-at-the-Server-1" href="Distributed-Objects.html#Code-at-the-Server-1">7.3.4 Code at the Server</a></li>
    </ul></li>
    <li><a id="toc-Language-Support-for-Distributed-Objects" href="Distributed-Objects.html#Language-Support-for-Distributed-Objects">7.4 Language Support for Distributed Objects</a>
    <ul class="no-bullet">
      <li><a id="toc-Protocol-Type-Qualifiers" href="Distributed-Objects.html#Protocol-Type-Qualifiers">7.4.1 Protocol Type Qualifiers</a></li>
      <li><a id="toc-Message-Forwarding" href="Distributed-Objects.html#Message-Forwarding">7.4.2 Message Forwarding</a></li>
    </ul></li>
    <li><a id="toc-Error-Checking" href="Distributed-Objects.html#Error-Checking">7.5 Error Checking</a>
    <ul class="no-bullet">
      <li><a id="toc-Vending-the-Server-Object" href="Distributed-Objects.html#Vending-the-Server-Object">7.5.1 Vending the Server Object</a></li>
      <li><a id="toc-Catching-Exceptions" href="Distributed-Objects.html#Catching-Exceptions">7.5.2 Catching Exceptions</a></li>
      <li><a id="toc-The-Connection-Fails" href="Distributed-Objects.html#The-Connection-Fails">7.5.3 The Connection Fails</a></li>
    </ul></li>
  </ul></li>
  <li><a id="toc-Base-Library-1" href="Base-Library.html#Base-Library">8 Base Library</a>
  <ul class="no-bullet">
    <li><a id="toc-Copying_002c-Comparing_002c-Hashing-Objects" href="Base-Library.html#Copying_002c-Comparing_002c-Hashing-Objects">8.1 Copying, Comparing, Hashing Objects</a></li>
    <li><a id="toc-Object-Containers" href="Base-Library.html#Object-Containers">8.2 Object Containers</a></li>
    <li><a id="toc-Data-and-Number-Containers" href="Base-Library.html#Data-and-Number-Containers">8.3 Data and Number Containers</a>
    <ul class="no-bullet">
      <li><a id="toc-NSData" href="Base-Library.html#NSData">8.3.1 NSData</a></li>
      <li><a id="toc-NSValue" href="Base-Library.html#NSValue">8.3.2 NSValue</a></li>
      <li><a id="toc-NSNumber" href="Base-Library.html#NSNumber">8.3.3 NSNumber</a></li>
      <li><a id="toc-NSRange_002c-NSPoint_002c-NSSize_002c-NSRect" href="Base-Library.html#NSRange_002c-NSPoint_002c-NSSize_002c-NSRect">8.3.4 NSRange, NSPoint, NSSize, NSRect</a></li>
    </ul></li>
    <li><a id="toc-Date_002fTime-Facilities" href="Base-Library.html#Date_002fTime-Facilities">8.4 Date/Time Facilities</a></li>
    <li><a id="toc-String-Manipulation-and-Text-Processing" href="Base-Library.html#String-Manipulation-and-Text-Processing">8.5 String Manipulation and Text Processing</a>
    <ul class="no-bullet">
      <li><a id="toc-NSScanner-and-Character-Sets" href="Base-Library.html#NSScanner-and-Character-Sets">8.5.1 NSScanner and Character Sets</a></li>
      <li><a id="toc-Attributed-Strings" href="Base-Library.html#Attributed-Strings">8.5.2 Attributed Strings</a></li>
      <li><a id="toc-Formatters" href="Base-Library.html#Formatters">8.5.3 Formatters</a></li>
    </ul></li>
    <li><a id="toc-File-Handling" href="Base-Library.html#File-Handling">8.6 File Handling</a></li>
    <li><a id="toc-Persistence-and-Serialization" href="Base-Library.html#Persistence-and-Serialization">8.7 Persistence and Serialization</a>
    <ul class="no-bullet">
      <li><a id="toc-Property-List-Serialization" href="Base-Library.html#Property-List-Serialization">8.7.1 Property List Serialization</a></li>
      <li><a id="toc-Archives" href="Base-Library.html#Archives">8.7.2 Archives</a></li>
    </ul></li>
    <li><a id="toc-Utility" href="Base-Library.html#Utility">8.8 Utility</a></li>
    <li><a id="toc-Notifications" href="Base-Library.html#Notifications">8.9 Notifications</a></li>
    <li><a id="toc-Networking-and-RPC" href="Base-Library.html#Networking-and-RPC">8.10 Networking and RPC</a>
    <ul class="no-bullet">
      <li><a id="toc-Basic-Networking" href="Base-Library.html#Basic-Networking">8.10.1 Basic Networking</a></li>
      <li><a id="toc-Remote-Process-Communications" href="Base-Library.html#Remote-Process-Communications">8.10.2 Remote Process Communications</a></li>
    </ul></li>
    <li><a id="toc-Threads-and-Run-Control" href="Base-Library.html#Threads-and-Run-Control">8.11 Threads and Run Control</a>
    <ul class="no-bullet">
      <li><a id="toc-Run-Loops-and-Timers" href="Base-Library.html#Run-Loops-and-Timers">8.11.1 Run Loops and Timers</a></li>
      <li><a id="toc-Tasks-and-Pipes" href="Base-Library.html#Tasks-and-Pipes">8.11.2 Tasks and Pipes</a></li>
      <li><a id="toc-Threads-and-Locks" href="Base-Library.html#Threads-and-Locks">8.11.3 Threads and Locks</a></li>
      <li><a id="toc-Using-NSConnection-to-Communicate-Between-Threads" href="Base-Library.html#Using-NSConnection-to-Communicate-Between-Threads">8.11.4 Using <code>NSConnection</code> to Communicate Between Threads</a></li>
    </ul></li>
    <li><a id="toc-GNUstep-Additions" href="Base-Library.html#GNUstep-Additions">8.12 GNUstep Additions</a></li>
  </ul></li>
  <li><a id="toc-The-GNUstep-Documentation-System" href="GSDoc.html#GSDoc">Appendix A The GNUstep Documentation System</a>
  <ul class="no-bullet">
    <li><a id="toc-Quick-Start" href="GSDoc.html#Quick-Start">A.1 Quick Start</a></li>
    <li><a id="toc-Cross_002dReferencing" href="GSDoc.html#Cross_002dReferencing">A.2 Cross-Referencing</a></li>
    <li><a id="toc-Comment-the-Interface-or-the-Implementation_003f" href="GSDoc.html#Comment-the-Interface-or-the-Implementation_003f">A.3 Comment the Interface or the Implementation?</a></li>
    <li><a id="toc-Comparison-with-OS-X-Header-Doc-and-Java-JavaDoc" href="GSDoc.html#Comparison-with-OS-X-Header-Doc-and-Java-JavaDoc">A.4 Comparison with OS X Header Doc and Java JavaDoc</a></li>
  </ul></li>
  <li><a id="toc-Application-Resources_003a-Bundles-and-Frameworks" href="Bundles-and-Frameworks.html#Bundles-and-Frameworks">Appendix B Application Resources: Bundles and Frameworks</a></li>
  <li><a id="toc-Differences-and-Similarities-Between-Objective_002dC_002c-Java_002c-and-C_002b_002b" href="Objective_002dC-Java-and-C_002b_002b.html#Objective_002dC-Java-and-C_002b_002b">Appendix C Differences and Similarities Between Objective-C, Java, and C++</a>
  <ul class="no-bullet">
    <li><a id="toc-General" href="Objective_002dC-Java-and-C_002b_002b.html#General">C.1 General</a></li>
    <li><a id="toc-Language" href="Objective_002dC-Java-and-C_002b_002b.html#Language">C.2 Language</a></li>
    <li><a id="toc-Source-Differences" href="Objective_002dC-Java-and-C_002b_002b.html#Source-Differences">C.3 Source Differences</a></li>
    <li><a id="toc-Compiler-Differences" href="Objective_002dC-Java-and-C_002b_002b.html#Compiler-Differences">C.4 Compiler Differences</a></li>
    <li><a id="toc-Developer_0027s-Workbench" href="Objective_002dC-Java-and-C_002b_002b.html#Developer_0027s-Workbench">C.5 Developer&rsquo;s Workbench</a></li>
    <li><a id="toc-Longevity" href="Objective_002dC-Java-and-C_002b_002b.html#Longevity">C.6 Longevity</a></li>
    <li><a id="toc-Databases" href="Objective_002dC-Java-and-C_002b_002b.html#Databases">C.7 Databases</a></li>
    <li><a id="toc-Memory" href="Objective_002dC-Java-and-C_002b_002b.html#Memory">C.8 Memory</a></li>
    <li><a id="toc-Class-Libraries" href="Objective_002dC-Java-and-C_002b_002b.html#Class-Libraries">C.9 Class Libraries</a></li>
  </ul></li>
  <li><a id="toc-Programming-GNUstep-in-Java-and-Guile" href="Java-and-Guile.html#Java-and-Guile">Appendix D Programming GNUstep in Java and Guile</a></li>
  <li><a id="toc-GNUstep-Compliance-to-Standards" href="Compliance-to-Standards.html#Compliance-to-Standards">Appendix E GNUstep Compliance to Standards</a>
  <ul class="no-bullet">
    <li><a id="toc-Conditional-Compilation" href="Compliance-to-Standards.html#Conditional-Compilation">E.1 Conditional Compilation</a></li>
    <li><a id="toc-User-Defaults" href="Compliance-to-Standards.html#User-Defaults">E.2 User Defaults</a></li>
  </ul></li>
  <li><a id="toc-Using-the-GNUstep-Make-Package" href="Make.html#Make" rel="index">Appendix F Using the GNUstep Make Package</a>
  <ul class="no-bullet">
    <li><a id="toc-Makefile-Contents" href="Make.html#Makefile-Contents">F.1 Makefile Contents</a>
    <ul class="no-bullet">
      <li><a id="toc-Makefile-Example" href="Make.html#Makefile-Example">F.1.1 Makefile Example</a></li>
      <li><a id="toc-Makefile-Structure" href="Make.html#Makefile-Structure">F.1.2 Makefile Structure</a></li>
      <li><a id="toc-Debug-and-Profile-Information" href="Make.html#Debug-and-Profile-Information">F.1.3 Debug and Profile Information</a></li>
      <li><a id="toc-Static_002c-Shared-and-DLLs" href="Make.html#Static_002c-Shared-and-DLLs">F.1.4 Static, Shared and DLLs</a></li>
    </ul></li>
    <li><a id="toc-Project-Types" href="Make.html#Project-Types">F.2 Project Types</a></li>
  </ul></li>
  <li><a id="toc-Concept-Index" href="Make.html#Concept-Index">Concept Index</a></li>
</ul>
</div>




<span id="Top"></span><div class="header">
<p>
Next: <a href="Introduction.html" accesskey="n" rel="next">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Make.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Objective_002dC-Programming-Manual"></span><h1 class="top">Objective-C Programming Manual</h1>


<p>The aim of this document is to provide a GNUstep/Objective-C programming
manual (primarily tutorial in style) for the language, the GNUstep Base
library, and the GNUstep Make package.  While to focus is on Objective-C, the
GNUstep libraries can also be used from Java and Guile, and some information
on this usage is also included.
</p>
<p>The manual does not cover installation instructions as these vary from system
to system, and are documented fairly well in the GNUstep
<a href="../../../User/GNUstep/gnustep-howto_toc.html">HOWTO</a>.
</p>
<p>The target audience for this manual is the C, C++, or Java programmer that
wishes to learn to use Objective-C effectively.  We assume that, while the
reader is able to understand English, it is quite possibly not their native
language.
</p>
<p>For detailed class reference documentation the reader is directed to the
GNUstep Base Library <a href="../Reference/index.html">documentation</a>, and to
the Apple Cocoa Objective-C Foundation documentation (available through
<a href="http://www.apple.com">http://www.apple.com</a>).
</p>






<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Introduction.html" accesskey="1">Introduction</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">An introduction to object-oriented programming
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Objective_002dC.html" accesskey="2">Objective-C</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">An introduction to the Objective-C language
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Objects.html" accesskey="3">Objects</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Working with objects; memory management
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Classes.html" accesskey="4">Classes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to create a new class
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Advanced-Messaging.html" accesskey="5">Advanced Messaging</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How messaging works, and advanced techniques
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Exception-Handling.html" accesskey="6">Exception Handling</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Exception handling, assertion, and logging facilities
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Distributed-Objects.html" accesskey="7">Distributed Objects</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Working with distributed objects 
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Base-Library.html" accesskey="8">Base Library</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using the classes in the GNUstep Base library
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="GSDoc.html" accesskey="9">GSDoc</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The GNUstep documentation system
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Bundles-and-Frameworks.html">Bundles and Frameworks</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The GNUstep Applicaton Resource Framework
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Objective_002dC-Java-and-C_002b_002b.html">Objective-C Java and C++</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Comparison between Objective-C, Java, and C++
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Java-and-Guile.html">Java and Guile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Programming GNUstep in Java and Guile
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Compliance-to-Standards.html">Compliance to Standards</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">GNUstep and the OpenStep and Mac OS X APIs
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Make.html" rel="index">Make</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using the Package to build GNUstep &quot;Objects&quot;
</td></tr>
</table>



<hr>
<div class="header">
<p>
Next: <a href="Introduction.html" accesskey="n" rel="next">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Make.html" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>

VaKeR 2022