Objective-C語法面試題

jopen 10年前發布 | 39K 次閱讀 Objective-C開發 Objective-C

1.    為什么Foundation框架中的類名都是以NS開頭?(Just for fun)

 

2.    以下方法中哪一個返回的不是autorelease對象?

A. [NSData data];             B.[NSString stringWithString:];

C. [NSNumber numberWithInt:];

D. [NSTimer scheduledTimeInterval:target:selector:userInfo:repeats:];

 

3.    #import與#include的區別是?

 

4.    @class的作用是?

 

5.    obj-c有多重繼承么?不是的話有什么替代方法?

 

6.    一下哪個方法名是合法的?

A. initWithFileID:filename:filePath::          B. startDownload

C. finishDownload::::::                                        D.以上都是合法的

 

7.    一個工程中存在group類(group.m, group.h)和people類(people.m, people.h),在group.m文件中的test方法如下:

-(void)test{

            People*people = [[People alloc] init];

            [NSTimerscheduledTimeInterval: 1.0f target:people selector:@selector(onCall) userInfo:nil repeats:YES];

}

請問onCall方法應該寫在哪個文件中?

A. group.m                    B. group.h

C. people.m                  D.people.h

 

8.    一個成員變量的聲明如下:

<p>@interface Test : NSObject{</p>

            NSString*str1;

            NSString*str2;

}

<p>@property (nonatomic, assign) NSString str1;</p> <p>@property (nonatomic, retain) NSString str2;</p> <p>@end</p>

 

<p>@implementation Test</p>

 

<p>@synthesize str1;</p> <p>@synthesize str2;</p>

 

-(id)init{

            self.str2= [NSString stringWithString:@”hello world”];

            [str2retain];

            self.str1= [[NSString alloc] initWithString:str2];

            [str2release];

            請問此時str1和str2的retainCount是多少?(不考慮系統對常量字符串的優化)

}

<p>@end</p>

 

9.    某個類中有一個test方法如下:

-(void)test{

            NSString*str1 = [[NSString stringWithString:@”hello world”] retain];

            NSString*str2 = [[[NSString alloc] init] autorelease];

(1)   請問此時str1與str2的retainCount是多少?(不考慮系統對常量字符串的優化)

str1 =[[[NSString alloc] initWithString:@”hello world”] autorelease];

str2 =[[NSString alloc] initWithString:str1];

[str1 release];

(2)   請問此時將str1和str2輸出的結果是什么?(不考慮系統對常量字符串的優化)

}

 

10.  請描述Objective-C的動態特性。

 

11.  這段代碼有什么問題,如何修改?

for (int i = 0; i < someLargeNumber;i++)

{

NSString *string= @”Abc”;

string = [stringlowercaseString];

string = [stringstringByAppendingString:@"xyz"];

NSLog(@“%@”,string);

}

 

12.  請寫出以下類成員變量自動生成的Getter和Setter方法。

<p>@property (nonatomic, retain) NSString    str1;</p> <p>@property (nonatomic, assign) NSString   str2;</p> <p>@property (nonatomic, assign) int              num;</p>

 

<p>@synthesize str1 = _str1;</p> <p>@synthesize str2 = _str2;</p> @synthesize num = _num;

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!