ios interview questions

Top iOS Interview Questions and Answers

Are you trying to hire an iOS Developer to build a stellar App for your company? iOS technology is continuously updating and sometimes it can be challenging for recruiters and hiring managers to ask the right questions. We have created a comprehensive list of iOS interview questions that recruiters and technical managers can ask an iOS Developer during an interview.

Initial iOS Interview Questions to be asked by Recruiters

Q1: How many years have you worked in iOS Development?

Candidates should be able to tell the number of years spent on iOS development. If a candidate’s experience is 1-2 years, the candidate is at junior level. 2-5 years experience is mid level, 5+ years experience in Senior level.

Q2. How many apps have you published in the app store?

Candidates should be able to tell how many apps are published in the app store. A junior level candidate should have published at least 1-2 apps on the app store. Mid level iOS developers should have published 2-5 apps, a Senior level candidate should have published 5+ apps.

Q3. What database have you used in building an iOS App?

CoreData is used to save data locally in the app. Backend database could be MySQL, MongoDB, NoSQL, AWS-DynamoDB.

Q4. What experience do you have in integrating APIs with the app?

Candidate should be able to tell the recruiters about the exp in integrating APIs with the app.

Read More: Android Interview Questions for Fresher and Experienced 

Q5. Have you worked on third party APIs?

Candidate should be able to tell you if he/she has worked on integrating third party APIs in the app like Facebook API, Instagram API, Paypal API.

Q6. How would you create the user interface of the app:

User interface is created using storyboards, XIBs.

Q7. What tools do you use to test the performance of your app?

Instruments, Accessibility Inspector

Q8. What is ARC?

ARC (Automatic Reference Counting) is a memory and object lifetime management model of Elements compiler that manages object life cycles. It tracks all valid references to an object via an internal retain count.

Q9. Define Bundle ID?

The bundle ID or identifier is used to identify an update in your app. It is used in both iOS and OS X apps.

Q10. What are the data types found in objective C?

There are four data types in objective-C: Bool, NSintegar, CGfloat, and string.

Q11. Define Cocoa/Cocoa touch?

Cocoa touch in an Object-C language used for developing software codes. It comprises a unique set of graphical control elements and runs only on iOS.

Q12. What are programming languages used for iOS development?

Programming languages used for iOS development are:

  • Swift
  • Objective-C

Q13. What are the methods required for concurrency?

The processes for concurrency are

  1. Dispatch queues
  2. Threads
  3. Operation Queues

Q14. What is the difference between atomic and non-atomic synthesized properties?


    • Default behavior
    • Not fast
    • Make sure the CPU completes the process


      • Not default behavior
      • Faster
      • It can deal with multiple requests simultaneously

Q15. How would you know when an app is not running the state?

An app that fails while launching or gets terminated by the system when put to execution.

Q16. What is an object?

Objects are instances of a class and contain states and behavior. For example, if a dog is an object, its states are colors, names, and breed. Similarly, its behavior is barking, eating, and wagging its tail.
In software development, fields store a software object, and its behavior is displayed through methods.
Objects can be a function, data structure, variable, or method.

Q17. How to know if an app is in an active state?

An app that accepts events and runs in the foreground is considered to be in its active state.

Q18. What framework is required to develop an application’s user interface?

UIKIT framework. It renders drawing models, windows, event handling, and views.

Q19. What is iBeacon?

iBeacon is a system that empowers mobile apps to receive and respond to signals from beacons from the real world. It comes with a broadcaster and a receiver.

Q20. Define Method Swizzling?

Method Swizzling is a process that involves swapping or exchanging implementation of two runtime methods and modifying the behavior of framework classes. It is mostly used to implement complex functions with ease.

Q21. Define Method Swizzling?

Method Swizzling is a process that involves swapping or exchanging implementation of two runtime methods and modifying the behavior of framework classes. It is mostly used to implement complex functions with ease.

Q22. When is the category used?


  • It is called when data is loaded into memory.
  • Data that are static and are likely to change can be loaded in Viewdidload.


  • It is called when the view is visible and presented on the device.
  • It allows you to perform any layout functions or draw in the UI.

Q23. What does KVO stand for?

KVO means key-value observing through which a controller can observe changes to property value.

Q24. What is GCD?

GCD (Grand Central Dispatch) is a library that enables object-based and low-level APIs to run tasks accordingly while managing threads.

Q25. Which method is used for executing final utilization before presenting the app to the end-user?

Before presenting the app to the user, we can use “application:didFinishLaunchingWithOptions” to execute the code for the first time.

Q26. What is Code Coverage?

Code coverage is used to estimate the unit tests values.

Q27. What is a Responder Chain?

A Responder Chain is the hierarchy of objects that can respond to events received.

Q28. What is Operator Overloading?

Operator overloading is used to work on how existing operators perform with types that already exist. Operators are those little symbols like +, *, and /.

Q29. What is the role of design patterns in Linux?

Design patterns consist of different templates used to solve common software design problems. It is used to write easy-to-understand codes.

Some common Cocoa design patterns include:

  • Creational: Singleton.
  • Behavioral: Observer, and, Memento
  • Structural: Decorator, Adapter, Facade

Q30. Explain the Adapter Pattern?

An adapter can integrate with classes with adverse interfaces putting it in sync. It also integrates with an object and allows it to interact with a standard interface.

Q31. Explain the Observer Pattern?

The observer pattern is a design pattern with one too many relations. It allows multiple objects (observer) to observe another Object (Subject) simultaneously. When one Subject changes its state, it is notified to the observers.
Cocoa uses the observer pattern in two ways:

  • Notifications
  • Key-Value Observing (KVO)

Q32. Name the APIs for battery-efficient location tracking?

Significant location changes: the location is delivered approximately every 500 meters (usually up to 1 km)

Region monitoring: track enter/exit events from circular regions with a radius equal to 100m or more. Region monitoring is the most precise API after GPS.

Visit events: monitor place Visit events which enter/exits from a place (home/office).

Q33. What is a delegate in swift?

Delegate is a design pattern, which is used to pass the data or communication between structs or classes. Delegate allows sending a message from one object to another object when a specific event happens and is used for handling table view and collection view events.

Q34. What is the difference between Array and NSArray?

The difference between Array and NSArray are given below:

  • An array can hold only one type of data, whereas NSArray can hold different types of data.
  • An array is a value type, whereas NSArray is an immutable reference type.

Q35. What is the difference between Upcast and Downcast in Swift?

1.  The upcast, going from a derived class to a base class, can be checked at compile time and will never fail.

2. However, downcasts can fail since you can’t always be sure about the specific class. If you have a UIView, it’s possible it’s a UITableView or maybe a UIButton.

Q36. What does the Swift mutating keyword mean?

Being the value type, structs are immutable. Meaning other variables can not change the values for instance of structure at any given point.
The mutating word is required for changing the values of self variables inside the structure’s function only.

Leave a Reply