语法篇

2022-12-03  本文已影响0人  ios小喽喽

1、@property的作用是声明属性及其特性?( ✅)  

2、@synthesize的作用是自生成属性的访问器(getter/setter)方法?( ✅ )  

3、代理(delegate)的作用是让一个对象实现另外一个对象的方法?( ✅ )

4、#import和#include的区别是:#import可以避免文件被多次引用?( ✅ )

5、在OC中是否支持运算符重载?(×)

6、在OC中能否在头文件里申明私有方法?(×)

7、Block不允许修改外部变量的值?(✅)

8、Swift布尔类型的值只能是true或者false?(✅)

9、Swift语言可以像C语言那样,用非0表示true,用0表示false?(×)

10、Swift语言可以像OC语言那样,用YES表示true,用NO表示false?(×)

11、Swift的continue语句,用来告诉用户一个循环体停止本次的循环,并立即进入下次的循环。(✅)

12、在swift环境中,无法为函数的参数设置默认值。(×)

13、swift语言支持将函数作为另一个函数的返回类型?(✅)

14、Swift语言支持将函数作为另一个函数的参数?(✅)

15、Swift语言中的函数无法同时返回多个值?(×)

16、在Swift环境中可以为类、结构体和枚举等类型定义静态方法?(✅)

17、在为结构体和枚举定义静态方法时,可以使用static关键字?(✅)

18、在为类定义静态方法时,可以使用class关键字?(✅)

19、Swift和OC一样时通过自动引用计数(ARC)技术来实现对实例的内存管理的?(✅)

20、在swift环境中,类的继承不同于结构体和枚举类型,继承是类所特有的?(✅)

21、Swift的延迟加载属性是指当第一次被调用的时候,才会对其进行初始化操作的属性?(✅)

22、在swift环境中元组、枚举和结构属于引用类型,而类则属于值类型?(×)

23、类型检查在Swift中是使用is和as操作符来实现的?(✅)

24、Swift语言中的AnyObject,可以代表任何class类型的实例?(✅)

25、Swift语言中的Any可以表示任何类型,除了方法类型(function types)?(✅)

26、Swift中的扩展功能(Extension),可以在没有权限获取原始源代码的情况下,扩展某个类型的功能?(✅)

27、现有的类、结构或枚举类型的方法,都可以在扩展的帮助下进行添加?(✅)

28、在Swift语言中,类型的功能可以使用扩展加入,但重写的功能不能使用扩展?(✅)

29、类,结构体和枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能?(X)

30、Swift没有OC中的#define、_OPTIMIZE_宏定义方法?(✅)

31、OC中的头文件和实现文件,请问.h文件类似C++中的.h文件,.m文件类似.cpp文件?(✅)

32、OC语言可以和C、C++混合编程吗?(✅)

33、OC只有单一继承,没有多重继承?(✅)

34、如果Category和原始类中的方法名称冲突,则Category将覆盖原始类的方法,因为Category具有更高的优先级?(✅)

35、无法向Category中添加实例变量吗?(✅)

36、Swift中枚举可以有初始化方法,也可以添加函数?(✅)

37、Swift中的结构体可以添加函数、扩展和实现protocol吗?(✅)

38、Swift中字符串、数组和字典是以结构体的形式实现的,还是以类的形式实现的?(B)

A.类            B.结构体

39、Swift中的Array、Dictionary、String都是结构体,传递时会进行拷贝,而不会改变原有的值吗?(A)

A.是            B.不是

40、使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?(B)

A.需要            B.不需要

41、可以向编译后得到的类中增加实例变量?(B)

A.可以            B.不可以

42、可以向运行时创建的类中添加实例变量?(A)

A.可以            B.不可以

43、闭包是值类型还是引用类型的?(B)

A.值类型            B.引用类型

44、weak属性需要在dealloc中置为nil吗?(B)

A.需要            B.不需要

45、在OC中向nil对象发送消息会导致crash吗?(B)

A.会           B.不会

46、OC的load和initialize方法只会被调用一次吗?(A)

A.是           B.不是

47、调用一个类的静态方法需要release吗?(B)

A.需要            B.不需要

48、与alloc相对应的方法是:(B)

A:alloc       B:dealloc        C:realease        D:autorelease

49、与retain对应的方法是:(C)

A:alloc       B:dealloc        C:realease/autorelease        D:copy

50、一个对象的dealloc方法在什么时被调用?     (D)

A:引用计数(retainCount)降为-1        B:引用计数(retainCount)降为1

C:引用计数(retainCount)降为2        D:引用计数(retainCount)降为0

51、分类(categories)能够向一个已有的类中添加;(A)

A:方法        B:属性        C:动作         D:协议

52、协议(protocal)可以分为两种,其中以哪种关键字申明的协议可以不被实现,(A)

A:@optional        B:@required        C:none         D:useful

53、那个类是大多数OC类继承的根类,它没有父类,(D)

A:NSNULL        B:NSInteger       C:NSString         D:NSObject

54、-(void)setName:(NSString *)newName{ self.name = newName;}被调用的结果是(B)

A: 设置name的属性的值        B:程序死循环        C:获得name属性的值        D:复制name属性的值

55、关键字nil在OC中表示:(A)

A: 一个空对象        B:一个空指针        C:一个空字符        D:一个空字节

56、在OC中,类的成员变量默认被申明为:(B)

A: @private        B:protected      C:public       D:package

57、关于OC-C++中异常处理,下面说法正确的是:(C)

A:OC不支持异常处理        B:在OC-C++中,OC的异常处理能够捕获C++的异常

C:在OC-C++中,OC的异常处理不能够捕获C++的异常 

D:在OC-C++中,OC和C++的异常处理可以相互捕获异常

58、在对象的dealloc方法中,关于[super dealloc];语句说法正确的是:(C )

A:[super dealloc];有没有都可以        B:[super dealloc];应该放在dealloc方法内的第一行

C: [super dealloc];应该放在dealloc方法内的最后一行

D: [super dealloc];位置无所谓,只有在dealloc方法里有就可以

59、下面关于方法:[[[object method1] method2] method3:[object method4]];中的method调用顺序:(B)

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

60、ARC模式下,下面那个方法是未被禁用的:(B)

A: retaion        B:copy      C:release       D:autorelease

61、下列对象中不能调用initWithContentsOfFile方法进行构造的是:(B)

A:NSString        B:NSXMLParser        C:NSDictionary        D:NSData

62、OC中包含一个自定义的头文件应该使用:(C)

A: #include “”        B:#include<>      C:#import""       D:#importy<>

63、必须实现的协议方法使用那个关键字声明;(C)

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

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

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

B:-(NSinteger)compareWithNumberForAscendSort:(Student*)otherStudent

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

D:+(int)compareWithNumberForAscendSort:(Student*)otherStudent

65、OC语言中类的实例变量如果只可以被本类和其子类访问,需要下列那个修饰符;(B)

A: @public        B:@private      C:@protected       D:@friendly

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

A:所有的集合都可以添加元素       B:集合分为可变集合,不可变集合

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

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

67、NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"akey"];

NSLog(@"*****%@",[dict objectForKey:@"aKey"]);以上输出:(C)

A:a value        B:aKey:a value        C:*****(null )       D:a value: aKey 

68、向OC控制台输出一个字符串应该用:(A)

A:NSLog()         B:Printf()        C:NSPrintf()        D:scanf()

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

A:0        B:1        C:2        D:3

70、下列那个选项与@synthesize配合使用:(D)

A:@end        B:@interface        C:@implementation        D:@property

71、在OC中所有类的根类是:(A)

A:NSObject        B:NSNull        C:NSCoding        D:UIView

72、能准确删除“张三”的代码是:NSMutableDictionary *peoples = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"王五",nil];(A)

A:[peoples removeObjectForKey:@"左护法"];    B:[peoples removeObject:@"张三"];

C:[peoples removeObjectAiIndex:0];    D:[peoples removeAllObjects];

73、使用OC语言输出“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.")

74、协议和委托的描述不正确的是:(C)

A:委托是iOS的一种设计模式    B:协议里的方法默认是必须实现的

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

D:定义协议使用@protocol

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

A:协议分正式和非正式协议

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

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

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

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

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

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

C:类是创建对象的模板

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

77、在OC中,下面那些选项是属性的正确声明方式:(C)

A:@property(nonatomic,retain)NSStringmyString;

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

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

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

78、NSString *name = [[NSString alloc]initWithString:@"张三"];NSLog(@"%d",[name retainCount]);以上代码输出的内容是:(A)

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

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

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

80、OC中的委托最好声明成:(B)

A:retain        B:assign        C:Copy        D:readonly

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

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

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

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

83、-(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:age

84、将@“2C青年”替换成@“有为青年”的代码是:(B)

A:[@"2C青年"stringByAppendingOfString:@"2B"withString:@"有为"];

B:NSRange range = {0,2};[@"2C青年"stringByReplacingCharactersInRange:range withString:@"有为"];

C:NSRange range = {1,2};[@"2C青年"stringByReplacingCharactersInRange:range withString:@"有为"];

D:[@"2C青年"stringByReplacingOccurrencesOfString:@"有为" withString:@"2C"];

85、下列回调机制的理解不正确的是:(B)

A:目标动作对:当两个对象之间有比较紧密的关系时,如视图控制器与其下的某个视图。

B:代理:也叫委托,当某个对象收到多个事件,并要求同一个对象来处理所有事件时,委托机制必须依赖某个协议定义的方法来发送消息

C:通告机制:当需要多个对象或两个无关对象处理同一个事件时。

D:Block:适用于回调只发生一次的简单任务

86、在Xcode中需要编译混合OC和C++的源码文件,需要将文件格式的后缀改为:(C)

A:.c        B:.cpp        C:.mm        D:.m

87、OC声明一个类所要用到的编译指令是:(A)

A:@interface SomeClass        B:@protocol SomeClass        C:@implementation SomeClass

D:autorelease someClass

88、下面那个方法不属于NSObject的内省(introspection)方法:(A)

A:init        B:isKindOfClass        C:responseToSelector        D:isMemberOfClass

89、适用protocol时,声明一组可选择实现与否的函数,需要在声明的前一行加上:(B)

A:@required        B:@optional        C:@interFace        D:@protocol

90、下面关于#import和#include的描述正确的是:(A)

A:#import是#include的替代指令,防止重复引用

B:#import和#include不可以混合适用

C:#import只用于引用OC文件,#include只用于引用C和C++的文件

D:#import和#include的使用效果完全相同

91、下面那个方法可以比较两个NSString *str1,*str2的异同:(B)

A:if(str1 = str2)xxx;        B:if([str1 isEqualToString:str2])xxx;

C:if(str1 && str2)xxx;        D: if([str1 length] == [str2 length])xxx;

92.OC有私有方法吗?有私有变量吗?(C)

A:有私有方法和私有变量        B:没有私有方法也没有私有变量

C:没有私有方法,有私有变量        D:有私有方法,没有私有变量

93、一个类的delegate的作用不正确的是:(D)

A:delegate中的函数在其他类中实现

B:主要用于不同类型的对象之间一对一传递信息

C:没有指派不会触发

D:可以一个对象的delegate指派给多个其他类型的对象

94:下面说法不正确的是:(C)

A:readwrite是可读可写特性;需要生成getter方法和setter方法时

B:readonly是只读特性只会生成getter方法不会生成setter方法;不希望属性在类外改变

C:assign是赋值特性,和weak一样,可用weak代替

D:retain表示持有特性,setter方法将传入参数先保留,在赋值,传入参数的retaincount会+1;

95.对于语句NSString *obj =  [[NSData alloc]init];obj在编译时和运行时,分别是什么类型的对象?(A)

A:编译时时NSString的类型;运行时NSData类型的对象

B:编译时是NSObject的类型;运行时NSData类型的对象

C:编译时是NSData的类型;运行时NSString类型的对象

D:编译时是NSObject的类型;运行时NSString类型的对象

96.以下关于类别的作用,说法不正确的是:(D)

A.将类的实现分散到多个不同文件或多个不同框架中

B.创建对私有方法的前向引用。

C.向对象添加非正式协议。继承可以增加,修改或者删除方法。

D.不能添加属性

97.下面关于 Objective-C中的 block定义正确的是:[A]

A. tyoedef void(^Successblock )(BOOL success)

B. tyoedef void(Successblock)(Nsstringvalue, BOOL success)

C. tyoedef void^(Successblock (Nsstringvalue, BOOL success)

D. tyoedef void^(Successblock )(Nsstring*value)

98.下列关于iOS开发中类方法的使用描述错误的是:(C)

A.类方法可以调用类方法

B.类方法不可以调用实例方法但是类方法可以通过创建对象来访问实例方法

C.类方法不可以使用实例变量,包括self(可以使用self)

D.类方法作为消息,可以被发送到类或者对象里面去

99.以下哪个语句,可以允许 Swift代码在执行完一个case分支后,跳转到下一个case分支中。[C]

A. continue    B. break    C. fallthrough    D. goto

100.以下关于 Swift语言中的数组,描述错误的是:[B]

A.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也被称为下标变量。

B.在 Swift中,数据值在被存储进入某个数组之前,数据的类型不需要明确。

C.数组中元素的访问,是通过下标语法实现的

D.在 Swift中,可以使用数组的 Append(方法,或者直接使用加号+,往已有的数组中添加新的元素

101.以下关于 Swift语言的枚举类型,描述错误的是:[C]

A.所谓枚举是指将变量的值一一列举出来,并只限于在列举出来的值的范围内进行取值。

B. Swift语言不须给枚举中的每一个成员都提供值。

C.字符、整数和浮点类型,可以作为枚举成员的数据类型,字符串则无法作为枚举成员的数据类型。

D.和 Objective-c语言中的枚举不同,你可以为Swif的枚举添加方法。

102.以下关于 Swift语言的结构体类型,描述错误的是:[D]

A.可以为结构体定义常量或变量的属性。

B.和 Objectiv-C语言中的结构体不同,你可以为 Swift的结构体添加方法。

C.可以给结构体定义下标。

D.使用 structurc关键字来进行定义的

103.如果你用 Swift写的 class是继承自 Nsobject的话, Swift会自动为所有的非 private的类和成员加上哪个标记?[C]

A.@property    B.@objc-no    C. @objc    D. synchronized

104. Objective-C异常并不是真正的异常,但是当一个异常被抛出到最外层还没被捕获,程序会强行发送哪个信号来中断程序?[B]

A.SIGINT        B. SIGABRT        C. SIGQUIT    D. SIGSEGV

105.如果管理员发现某个进程终止不了,可尝试发送哪个信号?(C)

A. SIGINT    B. SIGABRT    C. SIGKILL    D. SIGSEGV

106.在哪个 Swift版本中, Apple向开发者提供了两个类 Jsonencoder和 Jsondecoder,使对象和JSON之间进行转化变得非常简单?[D]

A.Swift 1    B. Swift 2    C. Swift 3    D. Swift 4.0

107.在 Swift4中,以下哪条语句可以获得字符串的长度:[B]

A."xxx".length    B. "xxx". count    C. xxx characters. count    D.xxx characters.length

 108.单向区间主要分两种:确定上限和确定下限的区间,如6.…,表示6及之后的所有数值空间。请问单向区间是由哪个Swift版本带来的?[D] 

A.Swift 1    B. Swift 2    C. Swift 3    D. Swift 4.0

109. runtime会将weak对象放入哪种数据结构?[D]

A.栈    B.队列    C.堆    D.hash表

110.拓展( extensions)能够在当前类中增加[B,C]

A.动作    B.方法    C.属性    D.协议

111. autorelease的作用是:[A,C]

A.将对象放入自动释放池    B.将对象的引用计数減一

C.延后调用 release方法    D.立即调用 release方法

112.在KVC中通用的属性访问器方法是哪两个?[A,B]

A. valueforkey:    B.setValue: forkey:    C. getValeforkey:    D. setValue:

113.下面哪些关键字会引起对象的引用计数( retain Count)加一:[A,C,D]

A:alloc    B.init    C. retain    D. copy

114.在以mm为拓展名的文件里,可以包含的代码有哪些?[A,B,C]

A. C    B. Obiective-c    C. C++    D. Swift

115.下面哪些类中使用到了单例( Singletion)模式?[A,B,C,D]

A. Filemmanager    B. NotificationCenter    C. Application    D. Device

116.下面各数据类型中,能够直接放进 NSArray数组的有:[C,D]

A. BOOL    B. NSInteger    C. NSString    D. NSArray

117.Objective-C的快速枚举对比循环访问的优点,下面说法正确的是:[A,B,C]

A.使用快速枚举效率更高            B.语法更简洁        C.使用更安全        D.支持更多的数据类型

118.以下哪一段代码不会抛出异常:[C,D]

A. NSArray *array = @[1, 2, 3]; NSNumber*number = array[3];// @[@1,@2,@3]

B. NSDictionary*dict=@{@"key":nil};//vaue不能为空

C. NSString *str=nil; NSString *str2=[str substringFromIndex: 3];

D. NSString *str =@"hi", NSString *str2=[str substringFromIndex: 3];

119.关于 Swift语言中的常量和变量,以下说法正确的是:[A,B,D]

A.常量所指向的是一个特定类型的值,如数字8或者字符“Swift”。

B.你可以使用let关键词定义一个常量,使用var关键词定义一个变量

C.常量和变量在使用前不需要定义(声明)。

D.变量的值可以根据需要不断进行修改,而常量的值一经定义,是不能够被修改的。

120. Swift4.0支持哪些输出函数?[A,C,D]

A.print    B. println    C. debugprint    D. dump

121.关于 Swift注释,以下说法正确的是:[A,B,C,D]

A.序言性注释的内容主要包括模块的接口、数据的描述和模块的功能

B.功能性注释主要包括程序段的功能、语句的功能和数据的状态.

C.单行注释使用//来表示        D.多行注释使用/*...*/来表示

122.关于 Swift语言的 Double和 Float类型,以下说法正确的是:[A,B,C,D]

A.浮点数值是具有小数部分的浮点数,比如3.1415和-0.28。

B.相比整数来说,浮点数类型能表示更广的数值范围,储存更大或者更小的数字。

C· Double表示64位浮点数,在浮点数需要特别大或者特别精确的时候,可使用此类型。

D. Float表示32位浮点数,在不需要64位精度的时候可使用此类型

123.关于 Swift字符串中的转义符,以下描述正确的是:[A,B,C,D]

A.\\表示反斜杠    B.\n表示换行符    C.\r表示回车符    D.\t表示制表符

124.以下对 Swift中的 switch条件判断语句,描述正确的是:[A,B,D]

A. switch语句会尝试把某个值与若干个条件进行匹配

B. switch语句都由多个case构成,每一个case都是代码执行的一条分支

C.和 Objective-C相同的是,在 Swift中,你需要为case分支添加 break语句

D.当条件判断的情况比较多时,通常用 switch语句替换语句

125.以下关于 Swift语言中的字典,描述正确的是:[A,B,C]

A.字典是一个能够使用类似于键的唯一标识符,来获取值的非序列化集合。

B.和数组不同的是,字典中的元素并没有具体的顺序,也就是说字典是无序存放元素的。

C.字典可以存储的键和值,必须提前定义它们的类型。

D.字典可以存储的键和值,无须提前定义它们的类型。

126.对 Swift中的函数描述正确的语句是:[B,C]

A. Swift使用关键字 function进行函数的定义。

B.函数是一个组织在一起的程序代码集合,用来完成某个特定的功能。

C.通过函数名以及对应类型的参数值,可调用这个函数。

D.调用函数时传递的参数的顺序,无需与参数列表中的顺序相同。

127.关于 Swift语言的函数,以下说法正确的是:[A,C]

A.如果你不确定参数的数量,可通过在变量类型后面加…,定义可变参数。

B.如果你不确定参数的数量,可通过在变量类型后面加_,定义可变参数。

C.一个函数最多能有一个可变参数,且必须是函数表中最后的一个。

D.一个函数可以有多个可变参数,可变参数可以放在参数列表中的任意位置。

128.关于 Swifti语言的内置函数,以下描述正确的是:[A,B,C,D]

A.abs绝对值函数,用来返回指定参数的正值。当参数为负数时,返回对应的正数;当参数为正数时,结果将保持不变。

B.min最小值函数,用来返回不定数量的参数之间的最小值。

C.max最小值函数,用来返回不定数量的参数之间的最大值。

D.map函数通常用于将数组中的每个元素,通过指定的方法进行转换    

129.以下有关 Swift语言中的类和结构体,描述正确的是:[A,B,C,D]

A.两者都可以定义属性以存储值。

B.两者都可以定义方法以提供功能。

C.两者都可以定义下标脚本,用于允许使用下标语法访问值。

D.两者都可以定义初始化器用于初始化状态

130.以下有关 Swift语言中的类和结构体,描述正确的是:[A,B]

A.两者都可以被扩展,以实现默认所没有的功能。

B.两者都可以遵循协议,以针对特定类型提供标准功能。

C.类可以继承另一个类,结构体也可以继承另一个结构体。

D.类和结构体都可以添加析构方法。

131.在 Swift语言中,使用扩展可以完成哪些任务?[A,B,C,D]

A.添加计算型属性和计算静态属性。    B.定义实例方法和类型方法

C.提供新的构造器。    D.使一个已有类型符合某个接口。

132.以下关于 Swift语言中的可选 Optional类型,描述正确的是:[A,C]   

A. Optional类型是一个enum枚举类型,包含None和Some两个元素。

B. Optional类型是一个enum枚举类型,包含 Blank和Some两个元素。

C.在通过 Some(T)包装wrap原始值之后,在使用 Optionall的时候,就要进行相应的拆包操作。

D.在通过 Some(T)包装wrap原始值之后,在使用 Optional的时候,无需进行相应的拆包操作

133.在 Swift中,我们可以给哪些类型定义 subscript下标脚本的语法?[A,C,D]

A.类    B.协议    C.结构体    D.枚举

134.以下关于Swi语言的下标说法正确的是:[A,B,C,D]

A.下标脚本使用 subscript关键字来定义

B.下标脚本使用get、set来定义读、写属性,并不需要get和set都有,可以只读,并且读必须有。

C.定义set属性时,传入的参数默认名称为 newValue。并且 newValue的类型和 subscript函数返回值相同。

D.下标脚本允许你通过在实例后面的方括号中传入一个或者多个的索引值来对实例进行访问和赋值。

135.Object-C具有哪些动态特性?[A,C,D]

A.动态类型    B.动态名称    C.动态绑定    D.动态加载

136.在 Objective-C语言中,除了哪几个方法之外创建的对象都是 autorelease的?[B,C,D]

A.init    B. alloc    C. new    D. copy

137.Objective-C有哪些遍历(迭代)方式?[A,B,C,D]

A.使用for循环    B.使用 NSEnumerator遍历    C.使用for...In遍历    D.基于Block的遍历方式

138.Objective-C的 Category可以实现哪些功能?[A,B,D]

A.将类的实现分散到多个不同文件或不同框架中。

B.创建对私有方法的前向引用。

C.向对象添加正式协议。        D.向对象添加非正式协议

139.以下哪些情况会在 Objective-C中产生异常?[A,B,C,D]

A. NSDictionary删除为nil的key        B. NSDictionary添加nil的对象

C.h文件里函数名,却忘了修改.m文件里对应的函数名

D.使用第三方库时,没有添加”-ObjC”flag

140.以下哪些情况会在 Objective-C中产生异常?[A,B,C,D]

A. NSDictionary插入nil的对象        B.NSURL的初始化,传入nil的http地址

C.数组最大下标处理错误        D.如果一个数组刚刚初始化,还是空的,就对它进行相关操作

141.Mach异常是指最底层的内核级异常,以下哪些属于Mach异常?[A,B,C,D]

A. EXC BAD ACCESS(Bad Memory Access)

B. EXC BAD INSTRUCTITON运行了非法的指令,往往是运行指令的参数不对(0或者nil的参数)    

C. EXC RESOURCE程序资源上限(cpu占用过高或者内存不足)。

D. EXC GUARD一些C函数访问错误导致的异常。

142.最常见的Mach异常: EXC BAD ACCESS,一般是由于哪两种情况造成的?[A,C]

A.访问非法地址( SIGBUS信号)                B.访问了尚未实现的方法

C·访问了被回收掉的内存( SIGSEGV信号)    D.访问数组时出现了索引越界

143.在以下列出的信号中,程序不可捕获、阻塞或忽略的信号有哪两个:[C,D]

A. SIGTSTP    B.SIGPWR    C. SIGKILL    D. SIGSTOP

144.在以下列出的信号中,默认会导致进程退出的信号有:[A,B,C,D]

A. SIGALRM    B. SIGHUP    C. SIGKILL    D. SIGTERM

145.以下哪些是常见的 Crash场景?[A,B,C,D]

A.访问了僵尸对象    B.访问野指针    C.数组越界    D.访问了不存在的方法

146. autoreleasepool是以一个队列数组的形式实现的,主要通过以下哪三个函数完成:[A,B,D]

A. objc_autoreleasepoolPush

B    objc_autoreleasepoolPop

C. obic_autoreleasepoolMov

D. obic_autorelease

147.以下哪些是 Runloop可以做到的?[A,B,C,D]

A.使程序一直运行接受用户输入        B.决定程序在何时应该处理哪些Event

C.调用解耦        D.节省CPU时间

上一篇 下一篇

猜你喜欢

热点阅读