美文网首页面试题我爱编程
Objective-C 面试题 《笔记篇》

Objective-C 面试题 《笔记篇》

作者: 失忆的程序员 | 来源:发表于2017-09-24 11:54 被阅读90次

    1、  OC中与alloc相反的方法是: 

    答案:(C)

    A、release    B、retain  C、dealloc    D、 free

    2、  必须实现的协议方法使用:关键字声明.

     答案:(C)

    A、@property    B、@interface    C、@required    D、@protocol

    3、  NSArray *array = [NSArray  arrayWithObjects:@"1",@"2",@"3",@"4",@"2", nil];

    NSMutableSet *set = [[NSMutableSet alloc]init];

    for(NSString *str in array) {

    [set addObject:str];

    }

    NSLog(@"%lu",[set count]); [set release];

    控制台打印的结果是:

    答案:(A)   

    A、4    B、5    C、6    D、7

    4、  声明一个方法:提供Student对象数组按照学号升序排列的判断条件: 

    答案:(A)

    A、 -(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent

    B、 -(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent

    C、-  (BOOL))compareWithNumberForAscendSort:(Student*)otherStudent

    D、+(int)compareWithNumberForAscendSort:(Student

    5、  下列选项中全部属于对象的是: 

    答案:(C)

    A、我的白色iPhone4s;Mac Mini

    B、狗;老虎

    C、邻居家的猫咪“贝贝”;我的弟弟“张三”

    D、保时捷;犀利哥

    6、  关于集合描述不正确的是: 答案:(A)

    A、所有的集合都可以添加元素。

    B、集合分为可变集合、不可变集合。

    C、数组、字典、NSSet这三种集合存储数据的方式不同。

    D、所有集合都能保存id类型数据。

    7、  NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"aKey"]; 
    NSLog(@"%@",[dict objectForKey:@"aKey"]);
    [dict release];

    控制台中打印的最后一条信息会是: 

    答案:(C)

    A、a value

    B、aKey : a value

    C、崩溃信息

    D、a value : aKey

    8、  向Xcode控制台输出一个字符串应该用:
     答案:(A)

    A、NSLog()

    B、Printf()

    C、NSPrintf()

    D、scanf()

    9、  名为print::的方法有几个传入参数: 答案:(C)

    A、0

    B、1

    C、2

    D、3

    10、  下列哪个选项与@synthesize配合使用: 答案:(D)

    A、@end

    B、@interface

    C、@implementation

    D、@property

    11、  面向对象的特性不包括: 答案:(D)

    A、封装    B、继承    C、多态    D、构造

    12、  OC中,所有类的根类是: 答案:(A)

    A、NSObject

    B、NSDate

    C、NSCoding

    D、UIView

    13、  现有如下集合,能准确删除“张三”的代码是:

    NSMutableDictionary * peoples=[NSMutableDictionary  dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥", nil];

    答案:(A)

    A、[peoples removeObjectForKey:@"左护法"];

    B、[peoples removeObject:@"张三"];

    C、[peoples removeObjectAtIndex:0];

    D、[peoples removeAllObjects];

    14、  使用 Objective-C 语言输出“This is a Objective-C program.”

             正确的是: 答案:(D)

    A、NSLog(@"%s",This is a Objective-C program.);

    B、NSLog(@"%@",This is a Objective-C program.);

    C、NSLog(@"This is a Objective-C program.",%@);

    D、NSLog(@"This is a Objective-C program.");

    15、  下列说法中错误的是: 答案:(C)

    A、Objective-C不用"函数调用",而用互相传递讯息.

    B、Objective-C一个完整的类分为interface和implementation两块

    C、Objective-C对象使用new分配内存,用delete释放

    D、Objective-C协议分为非正式协议和正式协议

    16、  用哪个关键字定义协议中必须实现的方法: 答案:(D)

    A、@optional    B、@protected    C、@private    D、不用写关键字

    17、  下面关于类概念的描述中,错误的是: 答案:(D)

    A、类是抽象数据类型的实现

    B、类是具有共同行为的若干对象的统一描述体

    C、类是创建对象的模板

    D、类就是C语言中的结构体类型

    18、  下面哪些选项是属性的正确声明方式: 答案:(C)

    A、@property(nonatomic,retain)NSString myString;

    B、@property(nonatomic,assign)NSString * myString;

    C、@property(nonatomic,assign)int mynumber;

    D、@property(nonatomic,retain)int mynumber;

    19、  NSString *name = [[NSString alloc]initWithString:@"张三"];

    NSLog(@"%d",[name retainCount]);

    上述代码打印结果是: 答案:(A)

    A、-1    B、0    C、1    D、2

    20、  不会立刻使引用计数器改变的是: 答案:(C)

    A、release    B、alloc    C、autorelease   D、retain

    21、  OC中的委托最好声明成: 答案:(B)

    A、retain    B、assign    C、copy    D、readonly

    22、  经过下列哪种操作后需要使用release方法。 答案:(C)

    A、delegate    B、assign    C、retain    D、dealloc

    23、  在OC中类的接口声明关键字为: 答案:(B)

    A、@import    B、@interface  C、@implemention    D、@protocol

    24、  -(id)setName:(NSString *)name :(NSString *)sex age:(int)age;

              的方法名是: 答案:(C)

    A、-(id)setName:(NSString *)name :(NSString *)sex age:(int)age

    B、-setName:name :sex age:age

    C、setName: : age:

    D、setName:name:age:

    25、  以下说法不正确的是: 答案:(A)

    A、nonatomic:提供多线程保护,提高性能,在没有使用多线程的编程中可以选择使用。

    B、assign:属性默认值。说明设置器直接进行赋值,针对基础数据类型(NSInteger,CGFloat)和C数据类型(int, float, double, char)等等。

    C、retain:此属性只用于obj-c的对象类型,对参数进行release旧值,再retain新值。

    D、copy:此属性只对实现NSCopying协议的对象有效(NSString)。拷贝工作由copy方法执行。

    26、  关于类和对象的概念,下列属于对象的是: 答案:(C)

    A、奥迪A6    B、保龄球   C、世界冠军刘翔    D、西红柿

    27、  Objective-C的代码文件的后缀为: 答案:(B)

    A、.cpp    B、.m    C、.pl    D、.c

    28、  Objective-C中包含一个自定义的头文件应该使用: 答案:(C)

    A、#include ""    B、#include<>    C、#import ""    D、#import<>

    29、  下列哪个选项不需要release方法: 答案:(C)

    A、[[NSString alloc]init];

    B、[[NSString alloc] initWithString:@”hehe”];

    C、[[NSArray arrayWithArray: arr1];

    D、[[NSMutableDictionary alloc] init];

    30、  NSMutableString * str = [[NSMutableString alloc] initWithFormat:@"123"];

    NSLog(@"str = %p",str);

    [str appendFormat:@"456"];

    NSLog(@"str = %p",str);

    上面代码对字符串str进行拼接后,2次打印的地址是否相同:

    答案:(A )

    A、相同    B、不同    C、随机打印      D、有时相同,有时不同

    31、  下面哪个选项对集合的描述是正确的: 答案:(D)

    A、集合内不能存不同类型的对象

    B、集合内可以存整型的数

    C、字典内键值可以相同,但是每个键值对应的对象必须不同

    D、集合内只能存对象

    32、  下面哪个选项无内存问题的: 答案:(C)

    A、-(NSString *)description  {

    NSString * str = [[NSString alloc] initWithFormat:@"description"];

    return str;

    }

    B、  -(NSString *)description  {

    NSString * str = [[NSString alloc] initWithFormat:@"description"];

    [str release];

    return str;

    }

    C、  -(NSString *)description  {

    NSString * str = [[NSString alloc] initWithFormat:@"description"];

    [str autorelease];

    return str;

    }

    D、  -(NSString *)description  {

    NSString * str = [NSString stringWithFormat:@"description"];

    return [str autorelease];

    }

    33、  关于KVC的描述正确的是: 答案:(B)

    A、KVC是指"Key-Value Observing"

    B、是一种间接访问对象的属性的机制。

    C、只能访问对象的属性。

    D、当对象的属性值改变时,我们能收到一个通知。

    34、  关于协议描述不正确的是: 答案:(D)

    A、协议分正式和非正式协议。

    B、在要求确认协议的类必须实现协议中的方法时,可以使用@required。

    C、一个协议可以被多个类确认。

    D、协议中声明的方法,默认是@optional的。

    35、  关于类目的说法正确的有: 答案:(A)

    A、类目可以为所有的类添加新方法。

    B、类目中添加的方法比原类中定义的方法级别要低。

    C、定义类目需要使用关键字category。

    D、类目可以随意使用。

    36、  下面描述正确的选项是: 答案:(B)

    A、当计数器为1时,dealloc方法由系统自动调用

    B、一个对象在引用计数变为0时,会调用自己的dealloc方法

    C、在dealloc方法里,应该在[super dealloc]后释放本类所拥有的对象

    D、开启ARC后,可以重载dealloc,必须在dealloc里写 [super dealloc]方法

    37、  下面程序段的输出结果是什么:

    NSArray * arr1 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];

    NSString *str;  str = [arr1 objectAtIndex:2];

    NSLog(@"%@",str);

    答案:(C)

    A、1    B、2    C、3    D、程序崩溃

    38、  @interface Person : NSObject

    @property(nonatomic,retain)NSString * name;

    @end

    上面声明一个Person类

    Person * per = [[Person alloc] init];

    per.name = [[NSString alloc] initWithFormat:@"张三"];

    NSLog(@"per.name = %d",[per.name retainCount]);

    答案:(D)

    A、per.name = -1;   
    B、per.name = 0;   
    C、per.name = 1;   
    D、per.name = 2;

    39、  以下说法正确的是: 答案:(C)

    A、求数组的内容的个数用length方法

    B、字典是根据其位置来索引数据的

    C、协议中定义的方法默认是必须实现的

    D、定义类目必须要拿到自己类的源代码

    40、  关于类目、延展的描述错误的是: 答案:(B)

    A、延展主要为类提供“私有”方法

    B、类目、延展不但能为类添加方法,而且都可以添加新的实例变量

    C、无论能否拿到类的源码,类目都可以对其扩展

    D、类目和延展声明语法不同

    41、  Objective-C 语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:

    答案:(C)

    A、@public

    B、@private

    C、@protected

    D、@friendly

    42、  下列代码:  @property(nonatomic,assign)idmyObject;

    答案:(C)

    A、是说myObject是Painting分类的一部分

    B、是说myObject遵从于Painting分类

    C、是说myObject遵从于Painting协议

    D、不是合法的Objective-C语法格式

    43、  在OC中扩展类的方法的形式不包括: 答案:(B)

    A、继承    B、多态    C、类目    D、延展

    44、  下列代码正确的输出结果是:

    NSString * urlStr = @"www.baidu.com";

    NSRange range = NSMakeRange(4,7);

    NSString *prefix = [urlStr substringWithRange:range];

    NSLog(@"%@",prefix);

    答案:(B)

    A、lan    B、baidu    C、www.11  D、123

    45、  自定义一个Person类,下面哪个选项是规范的便利构造器声明方式: 答案:(D)

    A、-(id)personWithName:(NSString *)theName;

    B、-(id)personwithName:(NSString *)theName;

    C、+(id)personwithName:(NSString *)theName;

    D、+(id)personWithName:(NSString *)theName;

    46、  下面哪个选项是正确的: 答案:(B)

    A、用继承可以扩展一个类,要调用扩展的方法,既可以用父类,也可以用子类

    B、用类目可以扩展一个类,可以直接用该类或该类的实例对象,去调用该类目扩展的方法

    C、延展就是类目

    D、可以在一个类的外部,调用这个类延展的方法

    47、  现要求声明一个集合,并将字符串添加到集合中,

    编写了如下代码,其中错误的是第几行:

    NSString * aString = [[NSString alloc] initWithString:@"iLanou"];

    (1)  [aString autorelease];

    (2)  NSArray * arr = [NSArray array];

    (3) [arr addObject:aString];

    (4) NSLog(@"string = %lu",[aString retainCount]);

    答案:(C)

    A、(1)    B、(2)    C、(3)    D、(4)

    48、  关于KVC的描述正确的是: 答案:(A)

    A、KVC是指“键-值-编码”。

    B、是一种直接访问对象的属性的机制。

    C、只能访问对象的属性。

    D、当对象的属性值改变时,我们能收到一个通知。

    49、  下面程序段的输出结果是什么:

    NSMutableArray * arr1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3", nil];

    [arr1 addObject:@"0"];

    [arr1 replaceObjectAtIndex:2 withObject:@"3"];

    NSLog(@"%@",arr1);

    答案:(B)

      A、0, 1, 2, 3 
      B、1, 2, 3, 0   
      C、1, 3, 3, 0   
      D、0, 3, 2, 3

    50、  协议与委托的描述不正确的是: 答案:(C)

    A、委托是iOS的一种设计模式

    B、协议里的方法默认是必须实现的

    C、类接受了多个协议,这些协议写在父类后面的<>内,多个协议之间用“、”隔开

    D、定义协议使用@protocol关键字

    51、  下面程序段的输出结果是什么:

    NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];

    [dic removeObjectForKey:@"3"];

    NSLog(@"%@",dic);

    答案:(C)

    A、1=2 3=4

    B、1=2 2=3

    C、2=1 4=3

    D、2=1 3=2

    52、  NSRange的成员变量有: 答案:(A)

    A、location,length

    B、width,height

    C、location,height

    D、length,width

    53、  NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

    [formatter setAMSymbol:@"AM"];

    [formatter setPMSymbol:@"PM"];

    [formatter setDateFormat:@"YY-MM-dd hh:mm:ss aaa"];

    NSString * currentDate = [formatter stringFromDate:[NSDate date]];

    NSLog(@"%@",currentDate);

    打印结果是: 答案:(D)

    A、2012-05-31 17:45:04 PM

    B、12-05-31 17:45:04

    C、2012-05-31 17:45:04

    D、12-05-31 05:45:04 PM

    54、  内存管理的关键字描述错误的是: 答案:(C)

    A、retaincount是指对象的引用计数。

    B、retain关键字可以增大对象的引用计数。

    C、release可以减小对象的引用计数,但autorelease不可以

    D、dealloc方法不能直接调用

    55、  以下对类的描述不正确的是: 答案:(C)

    A、类的接口部分可以包含实例变量、属性和方法

    B、可以把声明和实现都放到.h文件中

    C、一对文件(Person.h Person.m)只能定义一个类

    D、类比较抽象,对象比较具体

    56、  关于NSSet描述正确的有: 答案:(B)

    A、NSSet可以存放任何数据类型的数据。

    B、NSSet存放数据是无序的。

    C、NSSet可以通过下标获取数据。

    D、NSSet存放的数据是有序的。

    57、  简单类型的成员比如:int类型成员在使用@property()时,括号中应使用:

    答案:(A)

    A、assign    B、copy    C、retain    D、auto

    58、  有一个类Student,要求实现:定义一个实例初始化方法,初始化方法需要传入名字和性别:

    答案:(B)

    A、 -(id)initWithName:(NSString *)name sex:(NSString *)sex {

    if (self) {

    self.name = name;

    self.sex = sex;

    }

    return self;

    }

    B、  -(id)initWithName:(NSString *)name sex:(NSString *)sex  {

    if (self = [super init])  {

    self.name = name;

    self.sex = sex;

    }

    return self;

    }

    C、  -(id)initWithName:(NSString *)name sex:(NSString *)sex {

    if (!self)  {

    self.name = name;

    self.sex = sex;

    }

    return self;

    }

    D、  -(id)initWithName:(NSString *)name sex:(NSString *)sex {

    if (self = [super init])  {

    self.name = name;

    self.sex = sex;

    }

    }

    59、  声明一个返回值为NSArray,并且带两个字符串对象的BLOCK类型变量: 答案:(D)

    A、NSArray (*aBlock)(NSString * str,NSString *str2)

    B、NSArray ^(*aBlock)(NSString * str,NSString *str2)

    C、NSArray (^aBlock)(NSString * str,NSString *str2)

    D、NSArray *(^aBlock)(NSString * str,NSString *str2)

    60、  实例变量默认的访问修饰符是:

    答案:(C)

    A、@public

    B、@private

    C、@protected

    D、@package

    61、  创建对象时,对象的内存和指向对象的指针分别分配在哪里: 答案:(A)

    A、堆区,栈区    B、常量区,堆区    C、全局区,栈区    D、栈区,堆区

    62、  下列哪个选项不能作为property的可选属性: 答案:(A)

    A、alloc    B、retain    C、atomic  D、strong

    63、  对于语句NSString* testObject = [[NSData alloc] init];

    关于testObject是什么类型对象,

    以下说法正确的是:

    答案:(A)

    A、编译时,NSString类型,运行时,NSData类型

    B、编译与运行时,都是NSData类型

    C、编译与运行时,都是NSString类型

    D、运行时,NSString类型,编译时,NSData类型

    64、  现有自定义类Student,下列选项中Student类的便利构造器编写正确的是:

    答案:(D)

    A、  -(id) initWithName:(NSString *) newName {

    Student * stu = [[Student alloc] init];

    stu.Name = newName;  return stu;

    }

    B、  +(id) studentWithName:(NSString *) newName {

    Student * stu = [[Student alloc] init];

    stu.Name = newName;  return stu;

    }

    C、  +(id) studentWithName:(NSString *) newName {

    Student * stu = [[Student alloc] init];

    stu.Name = newName;

    [stu release];

    return stu;

    }

    D、  +(id) studentWithName:(NSString *) newName {

    Student * stu = [[Student alloc] init];

    stu.Name = newName;

    [stu autorelease];

    return stu;

    }

    65、 读代码:  NSString *str=@"hello";

    NSMutableSet *mt=[NSMutableSet setWithObjects:str, nil];

    [mt addObject:str];

    NSLog(@"%lu",mt.count);

    结果是: 答案:(A)

    A、1    B、2    C、3    D、4

    66、  下面程序段的输出结果是什么:

    NSString * aString = [[NSString alloc] initWithFormat:@"123"];

    NSLog(@"%d",aString.retainCount);

    aString = @"456";

    NSLog(@"%d",aString.retainCount);

    [aString release];

    aString = @"789";

    NSLog(@"%d",aString.retainCount);

    答案:(D)

    A、1,2,1

    B、1,1,0

    C、1,-1,0

    D、1,-1,-1

    67、  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    NSString *str = [NSString stringWithFormat:@”abc”];

    NSString *str2 = [str retain];

    [pool release];

    NSLog(@”str retainCount = %d,str2 retainCount = %d”,

    [str retainCount],

    [str2 retainCount]);

    上述代码打印结果正确的是:

    答案:(C)

    A、str retainCount = 2,str2 retainCount = 2

    B、str retainCount = 0,str2 retainCount = 1

    C、str retainCount = 1,str2 retainCount = 1

    D、str retainCount = 2,str2 retainCount = 0

    68、  查看下列代码,能正确输出number的选项是:

    @interface MyClass : NSObject  {

    int number;

    }

    +(void) printNumber;

    @end

    @implementation MyClass

    +(void) printNumber  {

    number =10;

    NSLog(@""%d"",number);

    }

    @end

    答案:(D)

    A、[MyClass printNumber];

    B、MyClass * obj = [[MyClass alloc] init]; [obj printNumber];

    C、printNumber();

    D、编译错误,无法执行

    69、  下面程序段的输出结果是什么:

    NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];

    [dic setObject:@"1" forKey:@"3"];

    [dic removeObjectForKey:@"1"];

    NSLog(@"%@",dic);

    答案:(C)

    A、1=3 2=3 3=4

    B、1=2 1=3 3=4

    C、2=1 3=1 4=3

    D、3=1 3=2 4=3

    70、  下面程序段的输出结果是什么:

    NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"1",@"3",@"1",@"4", nil];

    NSArray *arr1 = [[NSArray alloc] initWithArray:[dic allKeys]];

    NSArray *arr2 = [[NSArray alloc] initWithArray:[dic allValues]];

    NSMutableDictionary *dic2 = [[NSMutableDictionary alloc] initWithObjects:arr1 forKeys:arr2];

    NSLog(@"%@",dic2);

    答案:(C)

    A、1=2 1=3 1=4

    B、2=1 3=1 4=1

    C、1=4

    D、4=1

    71、  下面程序段的输出结果是什么:

    NSString * aString = [[NSString alloc] initWithString:@"hehe"];

    [aString autorelease];

    NSMutableArray *arr = [NSMutableArray array];

    [arr addObject:aString];

    NSLog(@"string = %d",[aString retainCount]);

    答案:(A)

    A、string = -1    B、string = 0    C、string = 1    D、string = 2

    72、  将@”2B青年”替换成@”文艺青年”的代码是: 答案:(B)

    A、[@”2B青年” stringByAppendingOfString:@”2B” withString:@”文艺”];

    B、NSRange range = {0,2}; [@”2B青年”  stringByReplacingCharactersInRange:range withString:@”文艺”];

    C、NSRange range = {1,2};[@”2B青年”  stringByReplacingCharactersInRange:range withString:@”文艺”];

    D、[@”2B青年” stringByReplacingOccurrencesOfString:@”文艺” withString:@”2B”];

    73、  下面程序段的输出结果是什么: int a = 10;

    NSNumber *b = [[NSNumber alloc] initWithInt:a];

    NSLog(@"%d", a+++b);

    答案:(D)

    A、21    B、20    C、30    D、编译错误

    74、  下列选项中不能正常为emp的name属性赋值的代码有: 答案:(B)

    A、emp.name=@"李嘉诚";

    B、emp->name=@"李开复";

    C、[emp setValue:@"柳传志" forKey:@"name"];

    D、[emp setName:@"黄光裕"];

    75、  下面程序段的输出结果是什么:

    NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];

    NSString *str = @"3";

    int a = 3;

    [dic setObject:a forKey:str];

    NSLog(@"%@",dic);

    答案:(D)

    A、2=1 3=3 4=3

    B、1=2 3=3 3=4

    C、1=2 3=3 3=3

    D、程序崩溃

    76、 读代码

    NSString * str =[[NSString  alloc]initWithFormat:@"%@",@"iLanou123ios"];

    NSString * str1=[str substringToIndex:3];

    NSString * str2=[str substringWithRange:NSMakeRange(6, 3)];

    NSString * newStr=[str1 stringByAppendingString:str2];

    NSLog(@"newStr=%@",newStr); 则newStr的值为:

    答案:(D)

    A、iLanou    B、iL123    C、iLaios    D、iLa123

    77、  NSMutableDictionary字典中删除对象可以使用下面那个方法: 答案:(D)

    A、filteredArrayUsingPredicate:

    B、rrayByAddingObject:

    C、initWithCapacity:

    D、setValue:forKey:

    78、  写出下面程序段的输出结果:

    NSString * aString = [[NSString alloc] initWithString:@"123"];

    [aString autorelease];

    NSMutableArray * arr = [NSMutableArray array];

    [arr addObject:aString];

    NSLog(@"string = %lu",[aString retainCount]);

    答案:(C)

    A、1    B、0    C、整型最大值    D、2

    79、  NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];

    NSArray *arr = [[NSArray alloc] initWithArray:[dic allKeys]];

    NSString *str = [[NSString alloc] initWithFormat:[arr  objectAtIndex:0],[arr objectAtIndex:1],[arr objectAtIndex:2]];

    NSLog(@"%@",str);

    结果是: 答案:(C)

    A、123    B、234    C、2    D、3

    80、  对于下面代码说法正确的是:

    @property (copy,nonatomic,readonly)NSString * calValue;

    答案:(D)

    A、没有getter方法,当对calvalue赋值时,将产生一个NSString副本。

    B、此属性可保证多线程安全。

    C、此属性在合成时可以生成设置器方法。

    D、此属性只能读取,不能赋值。

    -----------------------

    ※判断题(共10题,每题2分)

    1、  在静态(类)方法中,self就是指当前的类名。 答案:(正确)

    2、  不是每个对象都有引用计数。 答案:(错误)

    3、  在类方法中可以使用实例变量。 答案:(错误)

    4、  retain的作用是引用计数减一。 答案:(错误)

    5、  在dealloc方法中对变量的释放顺序与初始化的顺序相同。 答案:(错误)

    6、  在动态(实例)方法中,self是指调用当前方法的那个对象。 答案:(正确)

    7、  OC中如果向空指针nil发送消息,程序会崩溃的。 答案:(正确)

    8、  声明了@property指令,就不能再用setter,getter 方法了。 答案:(错误)

    9、  实例对象都是通过调用类方法生成的。 答案:(正确)

    10、  Objective-C 可以多重继承。 答案:(错误)

    相关文章

      网友评论

        本文标题:Objective-C 面试题 《笔记篇》

        本文链接:https://www.haomeiwen.com/subject/tyhkextx.html