1. Which is the application thread from where UIKit classes should be used?
Unless it’s stated, use UIKit classes only from your application’s main thread or main dispatch queue. This restriction applies in particular to classes derived from UIResponder or that require modifying the user interface of your app in some way.
2. What is Operator Overloading?
The process of adding new operators and changing existing ones to do various things is known as operator overloading.
+, *, and / symbols are known as operators.
3. What is TVMLKit?
4. What are UI Elements in iOS?
The visual elements that we can see in our applications are known as UI elements. Some of these components, such as buttons and text fields, respond to user interactions, while others, such as images and labels, provide information.
5. What is an NSError in Swift?
The NSError class is a Cocoa class. The knowledge about an error condition is encapsulated in an extendable, object-oriented manner by an NSError object. It includes a predefined error domain, a domain-specific error code, and a user details dictionary with application-specific data.
6. What is the difference between KVC and KVO?
KVC (Key-Value Coding) is a method for accessing an object’s properties using strings at runtime rather than needing to know the property names statically at development time.
KVO (Key-Value Observing) allows a controller or class to monitor changes in a property value. In KVO, an object may request to be informed of any adjustments to a particular property, and the observer is automatically notified if that property’s value changes.
7. What is Dynamic Dispatch?
At runtime, Dynamic Dispatch determines which implementation of a polymorphic procedure, such as a method or a function, to call. This means that when we want to call our methods, such as object methods, we must use this syntax. Swift, on the other hand, does not use dynamic dispatch by default.
8. What is GCD?
The GCD stands for Grand Central Dispatch. It is a low-level API that allows you to manage multiple concurrent operations. It will assist you in increasing the responsiveness of your app by deferring computationally intensive tasks to the context. It’s a simpler concurrency model than locks and threads to deal with.
9. What is SpriteKit and what is SceneKit?
SpriteKit is a platform for creating animated 2D objects quickly and easily.
SceneKit is a platform for 3D graphics rendering that was inherited from OS X.
SpriteKit, SceneKit, and Metal are expected to boost a new generation of mobile games that push the boundaries of what the powerful GPUs in iOS devices can do.
10. Differentiate between a frame and a bound?
A UIView’s bounds are a rectangle with a size (width, height) and position (x,y) relative to its own coordinate system (0,0).
A UIView’s frame is a rectangle with a scale (width, height) and position (x,y) relative to the superview it is located within.
11. Explain iBeacons?
Apple’s introduction of Bluetooth low-energy (BLE) wireless technology, iBeacon, is a new way for iPhones and other iOS users to receive location-based information and services.
12. What is Concurrency?
Concurrency is a fancy term for “running several tasks at the same time.” On iOS devices, concurrency is commonly used to allow you to run tasks such as downloading or processing data in the background while keeping your user interface sensitive.
13. Mention various ways to achieve concurrency in iOS?
Mainly, there are 3 ways to achieve concurrency in iOS. There are:
- Grand Central Dispatch
14. What is meant by deadlock?
A deadlock is a situation that occurs when at least two threads are locked on a different resource, and both are waiting for the other resource to finish its job. And no one is able to unlock the resource it is guarding.
15. Explain the lazy property in Swift?
A lazy stored property is one that does not determine its initial value until it is used for the first time. The lazy modifier is written before the declaration of a lazy stored property.
16. Explain QOS?
QoS stands for the quality of service. It is a class that organizes the work that NSOperation, NSOperationQueue, NSThread artifacts, dispatch queues, and threads do (POSIX threads). By assigning a QoS, you’re telling the system how important it is, and the system prioritizes and schedules it accordingly.