首页 > 试题广场 >

以下哪一段代码不会抛出异常()

[单选题]
以下哪一段代码不会抛出异常()
  • NSArray *array=@[1,2,3];NSNumber * number=array[3];
  • NSDictionary *dict=@{@"key":nil};
  • NSString *str=nil;NSString *str2=[str substringFromIndex:3];
  • NSString *str=@"hi";NSString *str2=[str substringFromIndex:3];
推荐
C,
A:OC数组中的元素不能是基本数据类型,必须是对象,并且array[3]下标越界,Xcode编译时报错
B:字典中键值对不能为nil,运行时崩溃
C:OC中向空对象发送消息,不执行任何操作,不报错,不崩溃
D:数组下标越界,运行时崩溃
编辑于 2015-06-17 20:54:21 回复(2)
A错 因为数组下标越界,下标从0~2有三个元素,下标3已经不在这个范围

B错 因为字典和数组中对于nil有特殊的含义,它表示元素个数的终止标记,不会被保存进字典或数组,要表示空可以使用[NSNull null]对象代替nil

C正确 因为向nil发送的任何消息都不会被响应也不会报错

D错  因为下标越界。
发表于 2015-09-13 21:14:31 回复(1)
A 数组的下标从0-2 array[3] 会异常
B NSDictionary 不允许存在key或value为nil
C nil 对象  操作无效,不会报错
D hi只有两个   越界
发表于 2015-06-08 11:56:39 回复(1)
C,给空指针指向的对象发送消息不会报异常。
发表于 2015-08-17 15:16:46 回复(0)
A 错.数组内只有3元素,取3是取第4个,数组中没有。
B 错.字典键值对,值不能为空。
C 对.是因为oc中给nil发送消息是可以的
D 错. 字符串str=@"hi"中只赋值了” hi “ 2个字符,查询下标为3,越界会报错。
发表于 2015-08-14 16:15:37 回复(0)
 A 错.数组内只有3元素,取3是取第4个,数组中没有。
 B 错.字典键值对,值不能为空。
 C 对.
 D 错. 字符串str=@"hi"中只赋值了” hi “ 2个字符,查询下标为3,越界会报错。

编辑于 2015-08-08 11:30:45 回复(0)
C不会异常

a、数组复制需要是对象,并且超标
b、如果是空,会导致崩溃
d、字符串截取超标,会导致崩溃
发表于 2015-07-09 14:28:01 回复(0)
A:OC数组中的元素不能是基本数据类型,必须是对象,并且array[3]下标越界,Xcode编译时报错
B:字典中键值对不能为nil,运行时崩溃
C:OC中向空对象发送消息,不执行任何操作,不报错,不崩溃
D:数组下标越界,运行时崩溃
发表于 2015-06-18 12:05:01 回复(0)
C
发表于 2015-06-02 18:00:00 回复(0)
C对,
A NSArray只能存对象 而且后面一句话数组越界
B 字典的key值不能为nil
D 下标越界 
发表于 2015-05-27 18:39:42 回复(0)
C

A.NSArray *array=@[@,@,@];NSNumber * number=array[2];
B. NSDictionary *dict=@{@"key"NSNULL对;

  • NSString *str=@"hi";NSString *str2=[str substringFromIndex:3]; str lenght要大于index



发表于 2015-05-26 20:32:56 回复(0)
A.错,NSArray只能存OC对象,应改为:NSArray *array = @[@1,@2, @3];并且下一句越界了。
B.错
C.对,可以想空对象发消息
D.错,越界,NSString *str=@"hi";的长度是2
发表于 2015-05-26 09:10:24 回复(0)
[-]. C OC可以给一个nil对象发送消息
发表于 2015-01-15 11:50:30 回复(1)