• OC中布尔(BOOL)类型的变量的值只有:

答案:(B)

 A、1/0 B、YES/NO C、true/false D、1/-1

BOOL返回的值是1/0,但是他判断是YES/NO,在swfit中是没有YES/NO的,只有true/false。。切记


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

答案:(C)

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

协议中有两个关键字,@required (必须执行的)@potional(可选执行的)

  • 19、

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

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

  • [str appendFormat:@"456"];

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

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

答案:(A)

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

切记,拼接后的字符串地址是不变的,懂了嘛?

  • 23、

  • 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

注意这里为什么是崩溃呢 ?因为这个是给便利构造器赋值,他是+号方法,不能赋值,可记住了把。。。

  • 28、

  • 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

这个不用说了把,他是把一个数组添加到NSMutableSet里面。set里面是没有不能有重复的元素。而且set也是无序的一个容器。。。。

  • 31、

  • NSRange的成员变量有:

答案:(A)

 A、location,length B、width,height C、location,height D、length,width

NSRange是个结构体,它里面的变量有location  和length两个 。

A structure used to describe a portion of a series—such as characters in a string or objects in anNSArray object.

typedef struct _NSRange {
      NSUInteger location;
      NSUInteger length;
} NSRange;

  • 32、

  • 声明一个返回值为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)

又返回值有参数的Block。

        NSArray *(^aBlock)(NSString *str,NSString *str2) = ^NSArray *(NSString *str, NSString *str2){

                }

类目关键字category(不能添加实例变量)。延展关键字Extension(可以添加实例变量)

  • 57、

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

  • 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

移除了第三个Key 那么也就是移除了4 = 3这个键对值,就只剩下了2 = 1 3 = 2这两个了


  • 60、

  • @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;

注意上面表红处,这里是用setter方法,在方法里面就有一次retain   所以这里的per.name是2.。。


  • 74、

写出下面程序段的输出结果:
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

这里输出-1或者整形最大值都是对的。

  • 77、

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

  • 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

因为他实在常量区定义的,所以是-1也就是无限大。。。


  • 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

首先str1是str的前三个,str1 = iLa   set2 是123    newStr就是拼接str1 和str2  最后也就是iLa123