Table of Contents
Foreword
1. Introduction
1.1 What is Object-Oriented Programming?
1.1.1 Some Basic OO Terminology
1.2 What is Objective-C?
1.3 What is GNUstep?
1.3.1 GNUstep Base Library
1.3.2 GNUstep Make Utility
1.4 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 Using the GNUstep Base Library
2.5 NSObject: The Root Class
2.5.1 Initializing Objects
2.6 Static Typing
2.6.1 Type Introspection
2.7 Working with Class Objects
2.7.1 Referring to Class Objects
2.7.2 Creating Instances
2.7.3 Factory Patterns
2.7.4 Factory or Class Objects
2.7.5 NSClassFromString
2.7.6 respondsToSelector and NSStringFromClass
2.8 Naming Conventions
2.8.1 Pitfalls of Using Class Names
2.9 The NSString Class
3. Writing New Classes
3.1 Interface
3.1.1 Interface Capabilities
3.1.2 Including Interfaces
3.1.3 Referring to Classes - @class
3.2 Implementation
3.2.1 Writing an Implementation
3.2.2 Referring to Instance Variables
3.2.3 Instance Variable Scope
3.2.4 Accessing Object Data Structures
3.2.5 Super and Self
3.3 Categories
3.3.1 Adding to Classes
3.3.2 Using Categories
4. Working with Objects
4.1 Selectors
4.1.1 Target-Action concept
4.1.2 Avoiding Messaging Errors with respondsToSelector:
4.2 Initializing and Allocating Objects
4.2.1 init
and Returned Objects
4.2.2 Allocating Memory
4.2.3 Memory Deallocation
4.3 Protocols
4.4 Memory Management
4.5 How Messaging Works
4.6 Hacking for Efficiency
4.7 NSString
4.7.1 Creating NSString Static Instances
4.7.2 NSString - +stringWithFormat:
4.7.3 C String Conversion
4.7.4 NSMutableString
4.7.5 Reading and Saving Strings
5. Distributed Objects
5.1 Object Interaction
5.2 The GNUstep Solution
5.2.1 Code at the Server
5.2.2 Code at the Client
5.2.3 Using a Protocol
5.3 An Example Game Server
5.3.1 What GameServer Does
5.3.2 Protocol Adopted at Client
5.3.3 Protocol Adopted at Server
5.3.4 Code at the Client
5.3.5 Code at the Server
5.4 Language Support for Distributed Objects
5.4.1 Protocol Type Qualifiers
5.4.2 Message Forwarding
5.5 Error Checking
5.5.1 Vending the Server Object
5.5.2 Catching Exceptions
5.5.3 The Connection Fails
5.5.4 GameServer Example with Error Checking
6. Advanced Topics
6.1 Forwarding
6.1.1 Forwarding and Multiple Inheritance
6.1.2 Surrogate Objects
6.1.3 Forwarding vs Inheritance
6.2 Exception Handling
6.3 Copying, Comparing, Hashing Objects
6.4 Dictionaries, Arrays, Containers
6.5 Coding
6.6 Property Lists
6.7 Bundles
6.8 UserDefaults
6.9 Threading
A. Glossary
B. Example Objective-C Code
B.1 A Simple Telephone Directory
B.1.1 The Makefiles
B.1.2 The Protocol Header File
B.1.3 Code at the Client
B.1.4 Code at the Server
B.2 GameServer with Error Checking
C. Using the GNUstep Make Package
C.1 Makefile Contents
C.1.1 Makefile Example
C.1.2 Makefile Structure
C.1.3 Debug and Profile Information
C.1.4 Static, Shared and DLLs
C.2 Project Types
D. Differences and Similarities Between Objective-C and Java
D.1 General
D.2 Language
D.3 Source Differences
D.4 Compiler Differences
D.5 Developer's Workbench
D.6 Longevity
D.7 Databases
D.8 Memory
D.9 Design Stability
E. Programming GNUstep in Java and Guile
Concept Index
This document was generated
by root on February, 18 2004
using texi2html