Objective C Interview Questions & Answers


Q: – What is #import ?

It's a C preprocessor construct to avoid multiple inclusions of the same file.

#import <Object.h>
is an alternative to
#include <Object.h>
where the .h file is protected itself against multiple inclusions :
#ifndef _OBJECT_H_

#define _OBJECT_H_

Q: – What is id ?

It's a generic C type that Objective-C uses for an arbitrary object. For example, a static function that takes one object as argument and returns an object, could be declared as :

static id myfunction(id argument) { … }

Q: – What is an IMP ?

It's the C type of a method implementation pointer, a function pointer to the function that implements an Objective-C method. It is defined to return id and takes two hidden arguments, self and _cmd :

typedef id (*IMP)(id self,SEL _cmd,…);

Q: – How do I get an IMP given a SEL ?

This can be done by sending a methodFor: message :
IMP myImp = [myObject methodFor:mySel];

Q: – How can I link a C++ library into an Objective-C program ?

You have two options : either use the Apple compiler or use the POC.
The former accepts a mix of C++ and Objective-C syntax (called Objective-C++), the latter compiles Objective-C into C and then compiles the intermediate code with a C++ compiler.

Q: – How do I make a static method ?

Methods are always implemented in Objective-C as static functions. The only way to obtain the IMP (implementation pointer) of a method is through the runtime (via methodFor: and friends), because the function itself is static to the file that implements the method.

Q: – How do I include X Intrinsics headers into an Objective-C file ?

To avoid a conflict between Objective-C's Object and the X11/Object, do the following :

#include <Object.h>
#define Object XtObject
#include <X11/Intrinsic.h>
#include <X11/IntrinsicP.h>
#undef Object

Q: – How do I allocate an object on the stack ?

To allocate an instance of 'MyClass' on the stack :
MyClass aClass = [MyClass new];

Q: – What's the class of a constant string ?

It's an NXConstantString.
NXConstantString *myString = @"my string";

Submitted By:-Rocky Rana           Email-ID: – rockurana94@yahoo.com