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