Who is this book written for?
The book is intended for developers who want to deepen their knowledge of Objective-C, and also strive to write code that is easy to maintain, effective, and contains fewer errors. Even if you are not an Objective-C developer, but you have experience with other objects -oriented languages (for example, Java or C ++), you still learn a lot of useful things. However, in this case, it is a good idea to familiarize yourself with the Objective-C syntax in advance.

What topics are covered in the book:
The book does not cover the basics of Objective-C - there are many other books and resources for this. Instead, the book teaches the effective use of language. It consists of approaches, each of which contains simple and accessible information. Approaches are grouped by topic.
')
Chapter 1. Mastering Objective-C
Basic concepts related to the language in general.
Chapter 2. Objects, messages and execution environment
Communication and interaction between objects is an important aspect of any object-oriented language. In this chapter, we will look at these aspects and study the structure of the runtime environment.
Chapter 3. Interface and API Design
Code is rarely written per one-time use. Even if you do not begin to publish it for third-party use, most likely, the code will be involved in several projects. This chapter explains how to write a class that fits in well with the Objective-C communication system.
Chapter 4. Protocols and categories
Protocols and categories are among the most important features of the language. Effective use of them will make your code more readable, simplify its maintenance and reduce the likelihood of an error. This chapter will help you master them.
Chapter 5. Memory Management
The Objective-C memory management model is based on reference counting. This fact has long created problems for beginners, especially those who have experience in the language of garbage collection. Introduction of automatic reference counting (ARC, Automatic Reference Counting) has simplified the situation, but the developer must take into account many important factors in order for the object model to work properly and not suffer from a memory leak. In this chapter, the reader will become familiar with the main problems associated with memory management.
Chapter 6.Blocks and Grand Central Dispatch
Blocks are lexical closures for the C language introduced by Apple. They are commonly used in Objective-C to solve problems in which generic code is used extensively. GCD (Grand Central Dispatch) provides a simple multi-threaded programming interface. Blocks are considered as GCD tasks that can be performed — possibly in parallel (depending on system resources). This chapter will help you get the most out of these two fundamental technologies.
Chapter 7.System frameworks
As a rule, we will write Objective-C code for Mac OS X or iOS. In such cases, you will have at your disposal a complete set of system frameworks: Cocoa and Cocoa Touch, respectively. This chapter provides a brief overview of the frameworks, and also discusses in depth some of their classes.
Table of contentsExcerpt