Hello All , find below some iPhone interview questions . I hope this will help you to face the technical interview . I will be modifying this post with some more questions and answers in a couple of days , so keep checking this post for more .
1. What is @interface?
- It’s a keyword used to
declare the Class.
2. What is @implementation?
- It’s a keyword used to
define the Class.
3. Garbage collector in
iPhone?
- iOS 5.0 has got the ARC (
Automated reference counting ).
Objective C does not have a garbage collector rather it uses the
reference counting algorithm to manage the memory. This was the developers task
until Apple launched iOS 5.0. Again if you are targeting iOS 4.0 or earlier ,
ARC is no more a choice for you .
4. What is delegate?
- Delegate is an object that
handles the events happening on an object. To do that delegate has to follow a
protocol specifying the task it is going to handle .
5. What is @synthesize?
- We use @synthesize to
generate getters and setters automatically from compiler. We declare properties and then generate
getter and setter method by using @synthesize.
6. What are the features of
iOS 5.0 ?
- https://developer.apple.com/technologies/ios5/
7. What is nonatomic ?
- nonatomic
and atomic are related to
multithreading environment .
- If a property has an attribute as
“nonatomic” that means multiple threads can modify that property concurrently.
- If the attribute is
“atomic”, the threads would be given access atomically.
- So “Atomic” is thread safe while “nonatomic”
is thread unsafe.
- Atomic drastically hampers
the performance so until and unless not needed you should never go for atomic
attribute. ‘nonatomic ’ will do in most of the cases.
8. What are the delegate
methods of MKMapView ?
- Check the MKMapViewDelegate
in the Documentation. If you don’t have Xcode with you then search on Google.
9. What are the important delegate
methods of NSXML parser?
-DidStartElement
-FoundCharecters
-DidEndElement
-FoundError
10. What is @dynamic and any
place where it is used ?
- It tells compiler that
getter and setter are not implemented by the class but by some other class .
- May be super class or child
class .
Example – Core Data
-
The Managed
object classes have properties defined by using @dynamic.
11. What is @property?
- It is a keyword used to
declare a property.
12. What is data source?
- The datasource is an object
that implements the required datasource protocol that is needed to create a
complex control.
Ex UITableView is a view that
needs a datasource object to which will help building the table. Often it’s the
controller that is displaying the table view. The protocol that dataSource
object ( mostly controller it self) has to implement is “UITableViewDataSource”
.
13. What is model view controller?
- MVC is a Design pattern .
Model stands for the
database object which will manage all
the database transaction .
- View stands for the UI i.e.
the UI visible to the user. User will be interacting with the view.
- Controller is an object who
handles the view events and also render the database changes to the UI. In
short , it bridges the interaction between Modal and View.
14. what is @ protocol?
- @protocol is a keyword used
to define a protocol. A protocol is a set of method declarations defining
specific purpose. It only lists out the methods prototype , the actual
implantation would be provided by the class that implements / follows the protocol.
15. what is id?
- id is a generic reference
type. The variable declared using id data-type can hold any object. Most of the
methods that returns an object has ‘id’ as return type. Ex – init.
16. Explain memory management?
- Most of the object oriented
languages have the Garbage Collector .
All the objects are allocated on the heap memory. The Garbage Collector
is a thread that runs periodically to check all the objects, which are no more
being referenced from the program. Garbage collector then de-allocates all
these unreferenced objects on the Heap. In this environment programmer does not
need to worry about de-allocating the objects explicitly.
In Objective – C we don’t
have garbage collector. ( Note: Its available from iOS 5.0 only). So in this
environment we have to explicitly take care of allocation and deallocation of
all the objects in our program. And to
manage this Objective C uses ‘reference counting’ algorithm as the memory
management algorithm.
Reference Counting: In this
algorithm every object keeps track of it owners ( I,e reference variables from
the program ) . No of owners is represented by the property retainCount
declared in NSObject. If this retainCount goes to ‘0’ the object gets
deallocated automatically. We never call
dealloc method on any object explicitly.
17. what is retain and
release?
- retain and release are two
method defined in NSObject . - -
- These methods are related
to Memory Mangement .
- retain method when called
increases the retainCount by 1.
- release method when called
decreases the retainCount by 1
18. what is dealloc?
- dealloc method is called on
an object to actually deallocate the memory for that object. ( We should never
call dealloc directly )
- In reference counting
environment when retainCount of an object reaches to ‘0’, the dealloc method is
called on that object automatically to delete the memory space of the object .
- If the object is having
some reference type variable holding other objects, then we should call release
method on every variable in dealloc.
- If you override then [super
dealloc] should be the last line in this method.
19. What is Autorelease pool?
- Autorelease pool is like a container that
holds the autoreleased objects .
- This pool is drained with
every run-loop of the Application
- When the pool gets drained,
autorelease pool sends a release message to all the objects it was holding.
20. What is Foundation
Framework? Can you explain some classes from that?
- Foundation is one of the
important frameworks in COCOA Touch.
- It contains the classes
like NSArray , NSString , NSObject etc .
21. What is the difference
between NSArray and NSMutableArray?
* NSArray
-
is a static array
-
Once created you
can not modify the array
-
Ex you can not
add or remove the object in NSArray.
* NSMutableArray
-
is a dynamic
array
-
You can add or
remove the object dynamically.
22. Write a delegate method
of the table view?
- (void)tableView:( UITableView*)tableView
didSelectRowAtIndexPath:(NSIndexPath*)indexPath
23. What are the delegate
methods of NSURLConection?
- didReceiveResponse:
- didReceiveData:
- didFinishLoadingData:
- didFailWithError:
24. What is cocoa ?
- COCOA is a collection of
frameworks used to write Applications for MAC OS X.
25. Singleton classes
- A singleton class is such a
class from which no more that one instance can be created. So there will always
be single instance created throughout the program.
Ex UIApplication.