An Overview of iOS
iOS, formerly known as iPhone OS, is a mobile OS created and developed by Apple for its hardware. This operating system powers most of Apple’s devices, including iPhones, iPads, and iPod Touch. iOS is the world’s second most popular mobile OS after Android. The iOS UI is based on direct manipulation by using multi-touch. Apple has been active in including accessibility functions into iOS that even enable users with vision and hearing disabilities to use its products properly. If you have read our IOS interview questions, you can find your next dream job soon.
iOS was unveiled in 2007 by Apple for its iPhone. Since then versions have been released annually.
Latest Version: The latest version is iOS 12, which was released in September 2018. Memorize this information for IOS interview questions and answers.
- Intuitive and fluid responsive
- Excellent UI that works equally good for all purposes - media entertainment, gaming and business.
- Less heat generated as compared to Android.
- Best-in-class security.
iOS Interview Questions and answers
Looking for a new job? Do not miss to read our iOS Interview Questions and answers. Whether you are a fresher or an experienced, these questions and answers that can help you to crack your interview.
- What is the output binary format? Explain
- What are the CPU architectures supported by iOS devices?
- What iOS version onwards ARC can be used?
- Can we support same application for iPhone3GS and iPhone 5, 6, 7? Why not?
- Can I write some C++ function in same .m file? Will it compile? If no, what changes should I do to compile it?
- What are the types of iOS binaries you can create using XCode? (.app, .ipa, .a, .framework)
- Can a static library (.a) contain resources like images, sound files etc?
- What is responder chain?
- Tell me hierarchy of UIButton.
- Why UIControl is provided if we can create custom UIView?
- App Life Cycle.
- ViewController Lifecycle.
- What are lifecycle events of UIViewController?
- What JSON Framework supported by iOS?
- Name the framework that is used to construct application’s user interface for iOS?
- What is Category and class extension? How these differ?
- What is the purpose of reuseIdentifier? What is the benefit of setting it to a non-nil value?
- Differentiate ‘app ID’ from ‘bundle ID’. Explain why they are used?
- Explain the different types of iOS Application States: Not running, Inactive, Active, Background, Suspended.
- What major changes released in iOS7, iOS8, iOS9+?
- Does Objective C have function overloading?
- What is difference between overloading and overriding?
- What is messaging? How does the runtime handle message passing? What is message forwarding?
- Does Objective C have multiple inheritance? Why not? How to imitate multiple inheritance?
- Who calls dealloc method? Can we implement dealloc in ARC? If yes, what is the need to do that?
- How do you check if your code has memory leaks?
- Concepts of notification center, local and remote notifications.
- What is Dependency Management Tools : Cocoapods etc?
- Common reasons for app rejection from App store review process?
- What Persistent storage used in Mobile Apps - iOS?
- What is ORM?
- What is Core Data?
- How do you setup/initialise a core data stack in your application? Is this activity performed on main thread? If not, why?
- What is NSPersistentStoreCoordinator? What duties does it perform?
- What is NSPersistentStore? Is it thread safe?
- What is NSManagedObjectContext? What are the different concurrency types? Explain them.
- What is NSManagedObjectModel?
- What is NSManagedObject?
- Different types of persistent stores? Which all types can we have on iOS?
- Can my application have multiple models? (Yes)
- In a single model, can I have few entities in one sqlite db file and remaining in another sqlite db file? (Yes, Hint: configurations)
- What are the different store migration options? When are they used? How do they work? What is mapping model?
- Explain parent-child context setup. How does it work? What are the advantages?
- What is difference between performBlock: and performBlockAndWait:?
- Are the NSManagedObjectContext queues serial or concurrent?
- Can you pass same core data objects between different threads and modify?
- What performance issues can you face when using CoreData?
- What is NSFetchedResultsController? How do you turn on content monitoring?
- How to implement "load more" using NSFetchedResultsController? (Hint: Set fetch offset and fetch limit on the NSFetchRequest of the controller, change the request to fetch more results)
- What are the different delete rules that a relationship can have? Which one takes ownership?
- In NSFetchRequest can we fetch only a selective few attributes of an entity? How?
- Can I have relationship between entities in separate stores (in case of configurations)? (No)
- What are fetched properties? How do you create a fetched property?
- Why do all model object attributes get marked with @dynamic and not synthesised? What does @dynamic mean?
- When a NSFetchRequest fetches an entity object from store, does it fetch all of its data at once?
- What is a fault?
- What are transient properties?
- How core Data Works to save data in Persistent storage?
- What persistent storage Core data uses to save data?
- How Core Data differs from SQLite?
- Is Core Data is thread safe?
- How to use Core Data Objects between two threads?
- How to handle concurrency problems in Core Data?
- What is NSUserDefaults?
- What is plist?
You can use the UIKit framework to develop application’s UI. This framework provides drawing model, event handling, views, windows and controls, designed for touch screen interfaces.
This framework provides essential infrastructure for constructing and managing iOS apps, such as view and window architecture for managing user interface, event handling infrastructure to respond to user input, and a model to drive run loop and communicate with the system.
It groups together similar rows that differ in content, but have similar layouts in a UITableView. A UITableView allocates sufficient UITableViewCell objects to just display the content that is visible in the table.
If you set reuseIdentifier to non-nil value, then UITableView will attempt to reuse an allocated UITableViewCell using the same reuseIdentifier when you scroll the table view.
If you do not set the reuseIdentifier, the UITableView will allocate new UITableViewCell objects for new items that will scrolls into view.