Cocoa Touch Interview Questions

Cocoa Touch is a user interface (UI) framework that provides an abstraction layer of the operating system (iOS) of iPhone, iPod touch, and iPad. Cocoa touch is primarily written in an Objective-C language and is used for building software applications for Apple products like iPhone, iPad and iPod Touch. It is based on Mac OS X and the high-level application programming interfaces help in making animations, networking and adding the appearance of the native platform to the developed applications.

If you’re in search of cocoa jobs, then you’re at right place. We’ve listed the most sought-after cocoa touch interview questions that are sure to help you out. If you’re planning to sit for an interview, then look no further and delve straight into the below-furnished question and answers.

Read best Cocoa Touch Interview Questions and Answers

  • Q1.

    What do you understand by cocoa?

    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. Cocoa has three frameworks namely-
    •  Foundation framework which a part of the core service layer.
    •  App Kit framework.
    •  Core data framework.
  • Q2.

     Differentiate between Objective-C and C/C++.

    Objective-CC++
    In Objective-C, the method and the variable have to be of exactly the same name.In C++, the name of the method and the variable has to be different.
    The message overloading is faked by naming a parameter and we have to mangle the names manually.C++ does the same work but instead of doing it manually, the compiler does the name mangling for us.
    Object-C doesn’t have references.C++ enjoys an advantage over Objective-C when it comes to references.
    in Objective-C, templates are not available. Templates are available in C++ because C++ has strong typing and static bidding.
    For differentiating between class methods, Objective-C uses + and -.For differentiating between class methods, C++ uses static to specify the factory method.
  • Q3.

    Elaborate on the meaning of Application Kit.

    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 subclassing NSView.
  • Q4.

    What does cocoa offers?

    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.
    • Different text representations and application preferences.
    • Concurrency, lazy loading.
  • Q5.

    Enlist the different layers of MAC OSX.

    The different layers of MAC OSX are as follows-

    User Experience

    • Aqua
    • Spotlight
    • Dashboard
    • Accessibility

    Application services like graphics and media

    • Core image
    • Core video
    • Quartz
    • OpenGL

    Core services

    • Carbon core
    • Core foundation
    • Foundation

    Application frameworks

    • Applet
    • Java
    • Carbon
  • Q6.

    What are the performance tools available for cocoa application development?

    The following performance tools are available for cocoa application development:
    • Instruments- the instruments are used to display memory statistics, CPU usage, disk data, 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 tracks function calls and graphs memory allocation.
    • Quartz debug- it helps debug applications that do large amounts of drawing.
  • Q7.

    Elaborate foundation framework. Enlist its important features.

    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 NSOject class with NSObject and NSCopying protocols.
    •  With Unicode strings and bundle technology, foundation framework supports internationalization and localization.
  • Q8.

    State the important classes in cocoa.

    There are several classes in cocoa. The notable ones are-
    • NSNumber: it represents objects that contain integers, doubles, and floats.
    • NSDate: it is used for displaying dates and times in various formats.
    • NSXMLParser: it is used to process XML data.
    • NSArray: it uses zero-based indexing for an ordered collection of objects.
  • Q9.

    What is the meaning of core data?

    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 NSManagedObjects. 
  • Q10.

    Highlight the differences between cocoa and cocoa touch.

    Cocoa is an application framework that assists in the development of applications in MAC OS X environment. It is an amalgamation of two frameworks namely AppKit framework and Foundation Framework.

    Cocoas touch is an application framework for Apple products like iPad, iPhone and iPod Touch. It is basically a combination of Foundation Framework and UIKit Framework.