Cocoa is commonly referred to as the combination of the Foundation and AppKit frameworks, while Cocoa Touch is the combination of the Foundation and UIKit frameworks.
Cocoa and Cocoa Touch sit on top of other collections of frameworks to create the API stacks. The other layers are Media, Core Services and Core OS.
The big difference is the UI layer. On the Mac, you have the AppKit framework, on the iPhone, you have UIKit. The smaller differences are in the Foundation framework
Cocoa is for Mac development; Cocoa Touch is for iOS development. If something is only in Cocoa, you can’t use it on iOS, and if something is only in Cocoa Touch, you can’t use it on Mac OS X
First you have to know about the foundation classes(NS. +).
NS stands for NEXT STEP (1989 to 1995)
mac os x (1999 to till date)
iPhone os (2007 to till date)