It is not a standardized language, that is, there is no official standard that describes Objective-C.
Here is a good resource for Objective-C
- Objective-C highligts
- Protocols. A protocol declares the methods which should be implemented on a class which defines a given protocol. Since Objective-C lacks multiple inheritance, we can use Protocols to make up for this.
- Categories. Categories allow you to add or repair functionality of a given class without having access to its source code. Whenever an object of the type you added the category to is instantiated within your program, it has the extra methods you added to it.
To learn more about Objective C, please watch this video.
The Cocoa and Cocoa Touch frameworks that power Mac OS X and iOS are tightly integrated into the Xcode development experience. Cocoa’s high-level APIs make it easy to add animation, networking, and the native platform appearance and behavior to your application with only a few lines of code.
Cocoa consists of the Foundation Kit, Application Kit, and Core Data frameworks, as included by Cocoa.h header file, as well as the libraries and frameworks included by those, such as the C standard library and the Objective-C runtime. For end-users, Cocoa applications are those written using the Cocoa programming environment. Such applications usually have a distinctive feel, since the Cocoa programming environment automates many aspects of an application to comply with Apple’s human interface guidelines.
What’s the difference between Objective-C and Cocoa?
Objective-C is the language… it defines all the things like the keywords for defining objects, the syntax for messaging object, things like that.
Cocoa is a development framework (it’s actually an umbrella framework which combines three other frameworks, Foundation, AppKit and CoreData).
These frameworks (Cocoa) define all the objects that are nice to use and interact with the operating system, as well as a number of functions. For example, Cocoa defines things like NSString and NSObject. Cocoa can currently be used with other language bindings, such as python or ruby, and used to be used with Java as well. So, if you were using Cocoa with Java, you would still get an NSString object, but you would call and use it from within a Java application.
Without linking to one of the Cocoa frameworks, Objective-C comes with only a very basic Object class as a pre-defined root class.
For more information about Objective C and Cocoa, please visit apple developer page.