Cocoa Touch Interview Questions

Cocoa is a suite of object-oriented software libraries that develop OSX and iOS apps. Cocoa is an application environment and a runtime system where apps are developed using Swift language and Objective C. Objective C is based out of ANSI C. While developing a cocoa application, ANSI C code can be mixed with Objective C code. Cocoa applications can also include C++ code.

Application kit is a framework that contains all the objects and details needed to implement the graphical and event-driven user interface. It also manages all the information as it draws on the screen efficiently, communicates with hardware devices and clear areas of the screen before drawing. You can choose at which level you want to use the application kit. Create connections from user interface objects to application objects with the help of interface builder. Control the user interface programmatically and implement your own objects sub classing NSView.

Cocoa offers numerous benefits to its users. It supports event-driven behavior that helps in managing applications, windows, and workspaces. In interface builder, cocoa has a huge pool of user interface objects. UI objects like windows, buttons, tables, etc can be dragged and dropped from interface builder or can be created using code.

Cocoa supports the following:-

Internationalization.

Handles undo and redo management.

Basic printing to advance printing such as content formatting and pagination.

The following performance tools are available for cocoa application development:

Instruments- The instruments are used to display memory statistics, CPU usage, disk data, and network statistics and thread activities.

Big top-Big tops show the graph performance trends

Malloc debug- This gives us an insight into how much memory is allocated to different functions. It tells us how much memory a function is consuming and also finds leaks by checking allocated memory that is not referenced anywhere in the program.

Shark- Shark track function calls and graphs memory allocation.

Quartz debug- It helps debug applications that do large amounts of drawing.

Foundation framework provides a set of useful object classes and also introduces several paradigms that are not covered by Objective-C language. The foundation framework defines the base for Objective-C classes. It aids the task of software development by facilitating consistent conventions for deallocation. To enhance portability, Foundation framework provides a layer of OS independence. The foundation framework is grouped into value objects, collections, notifications, spotlight queries, predicates, and expressions, etc.

Some of the notable features of foundation framework are as follows:

It supports object persistence and object distribution.

The foundation class hierarchy t is routed at NSObject class with NSObject and NSCopying protocols.

Core data is a Cocoa framework that helps in managing object graphs and persistent storage. It saves model objects to a persistent store and also helps to fetch them. The main motive of core data is the managed objects which are the instances of NSManagedObject.