Introductory overview of Cocoa Touch for programmers who grew up in C
Cocoa Touch is a framework for developing touch screen applications: it includes elements of the user interface, event dispatch, application life cycle, etc. This also includes object wrappers around essential data types (strings, collections).
Most of the Cocoa Touch classes are designed to be called directly from your code; you can subclass these classes to add functionality, but you need to do this much less frequently in Cocoa Touch than in other languages.
The Cocoa Touch application frameworks contain most of the classes that you will use to develop your first applications. The term comes from Cocoa, the object-oriented frameworks developed for Mac OS X programming (and NextStep before that), along with GUI classes designed exclusively for use on a touchscreen mobile device (hence the ” Touch “).
The Cocoa Touch Foundation framework includes essential data classes, includes basic utilities, and establishes some basic programming conventions that cannot be expressed with the Objective-C language alone, such as techniques for managing memory. Almost all Cocoa classes inherit from a root class, NSObject defined in Foundation.
Perhaps the first and most important thing to discover in Foundation is its data management classes, which are used in Cocoa instead of the procedural equivalents of C. For example, the traditional C demands, the null-terminated char array, is almost never used in Cocoa. Instead, it uses NSString, which represents not only the character data but also their encoding: With extensive support for Unicode (and UTF-8 and UTF-16 encodings), NSString makes it easy to handle text in any of the dozens of character sets on the iPhone.
Cocoa also provides a deep set of collection classes, obviating the need for most uses of C arrays (or hand-rolled collections, such as linked lists and hash tables). Three classes are used to collect Cocoa objects: NSArray for ordered collections of objects. NSSet for unordered collections and NSDictionary for mapping key objects to value objects. These three collections are immutable: once initialized, they cannot be changed. If you want to add, remove, or change its content, use the mutable subclasses NSMutableArray, NSMutableSet, and NSMutableDictionary.
Collections can only store NSObjects. If you have C primitives, you can pass them through Cocoa with the wrapper classes NSData and NSMutableData, which wrap a byte buffer, and NSNumber, an object container for any of C’s scalar (numeric) types, such as int, float, or bool. .
Cocoa has some more specific data classes, including NSURL for URLs (including file: // style URLs that represent items on the local file system, though it often uses NSString paths as well) and timing classes like NSDate and NSTimeZone.
The “Touch” part of Cocoa Touch is largely represented by the UIKit framework, also imported by default in all iPhone applications. This framework provides the drawing model, event handling, application lifecycle, and other essentials for a touch application. You will largely interact with it through the various classes of UI components it provides: UIButton, UlTextView, UlTableView, etc. Between the data types in Foundation and the UI components in UIKit, Cocoa Touch gives you a great foundation on which to start coding your application.
In short, you should now understand that; Cocoa and Cocoa Touch are software frameworks that give developers the power to create intuitive applications using Mac OS X desktop and seamlessly transfer them to the iPhone OS. It is this tight integration into the Xcode development scheme, (Apple calls it its developer ecosystem) that makes application development in the great Apple environment such a seamless process. Plus, Cocoa’s top-level API settings make adding “cool” features like networking, animation, and that i-Family look to your application, with relatively efficient coding, much easier than other software environments. programming … once I’ve spent time learning its features. Like everything smart, you have to educate yourself before launching your career.