定义一个出租车类类Student,具有以下属性和方法:

目录:一、方法二、实例变量三、属性(点语法)四、初始化方法(自定义构造方法)回到顶部一、方法1 函数与方法有什么区别?函数只是一个程序的代码段,与类无关。方法,类的一部分,代表对象可以干什么,正常来讲,类必须实例化,方法才可以使用,实例方法,调用方法时,也叫做向对象发送消息。2 语法格式与函数非常相似,但截然不同,使用方法时,在.h文件中声明,在.m文件中实现。&无参的方法-(返回值类型)方法名;&有1个参数的方法-(返回值类型)方法名:(参数类型)参数名;&有多个参数的方法-(返回值类型)方法名:(参数1类型)参数名1 : (参数2类型)参数名2 :(参数n类型)参数名n ...;注:":"号也是方法名的一部分练习:给Student类定义一个方法,分别传人信息,int age、char gender、double salary信息,并输出。&有多个参数的方法(推荐写法)-(返回值类型)部分方法名:(参数1类型)参数名1部分方法名2: (参数2类型)参数名2 部分方法名n:(参数n类型)参数名n ...;部分方法名起到提示作用,并不影响程序的执行。回到顶部二、实例变量1 一个对象会有自己独特的 数据和别的对象不同,这些数据会保存在特殊的变量中,这种变量就叫实例变量。类的每个实例对象都有一份。2 用一个类,创建出一个对象,那么我们就说这个对象就是此类的实例,一个类可以有很多实例,每一个实例都有3 实例变量的声明,可以放在.h文件中,也可以放在.m文件中,实例变量默认是私有的,只要当前对象才可以访问。4 方法也是一样,放在.h中声明,就是公有方法。方法在.h文件中没有声明,就是私有方法,是不合法的。练习:给Student类定义实例变量int age、char gender、double salary信息,赋值并输出。定义一个方法printInfo输出所有实例变量的值。回到顶部三、属性(点语法)1 在OC中属性提供了setter和getter方法,本质上属性其实就是方法,而属性的值是由实例变量来保存。2 属性的本质由三个部分组成:1)保存属性值的实例变量;2)setter和getter方法的声明setter方法:方法名:set+属性名并首字母大写+:+和属性类型一样的参数,无返回值。标准写法:-(void)setAge:(int)age;getter方法:方法名和属性名一样,没有参数,返回值类型和属性类型一样。标准写法:-(int)age;3)setter和getter方法的实现setter方法的实现主要用来给属性赋值 的getter方法的实现主要用来读取属性值的练习:(使用属性值赋值)给Student类定义实例变量int age、char gender、double salary信息,赋值并输出。定义一个方法printInfo输出所有实例变量的值。3 声明式属性在.h中@//int属性类型age属性(方法)名,自动生成了setter和getter声明在.m中@synthesize age = _将属性与实例变量关联在一起。属性的使用:引用.属性 = 值;=&自动调用setter方法stu.age = 18;变量 = 引用.属性;=&自动调用getter方法int age = stu.4 IOS5.0以后,属性的声明简化了,省去了实例变量。在.h中@自动生成实例变量名为_属性名的实例变量。5 IOS6.0开始,声明式属性又简化,.m文件中的@synthesize age = _省略练习:创建一个point类,有横坐标x,纵坐标y,能显示位置(show方法),创建两个位置并显示。回到顶部四、初始化方法(自定义构造方法)1 初始化方法是实例方法,用来初始化对象的方法,规则:a 初始化方法都是以init开头的,无参的初始化方法就是init(强制将空间清零),有参的都以"initWith"开头b 初始化方法的返回值为id类型,代表任意对象,(void*)c 初始化方法的固定格式-(id)initWithAge:(int)age{&&& if (self = [super init]) {&&&&&&& _age =&&& }&&&}&super代表类的父类,[super init]是通知父类去做底层的操作。2 OC中的self既可以用在(-)实例方法中,也可以用在(+)类方法中,self代表着当前方法的调用者,在实例方法中,self代表着"对象",在类方法中,self代表着"类"。3 main.m中[[Student alloc] init]与[Student new]是等价的。4 id类型是一种特殊的指针类型,类似void*,id类型其实就是一个指针变量类型,指向任何对象,在使用前必须类型转换。作业:(使用初始化)创建一个point类,有横坐标x,纵坐标y,能显示位置(show方法),创建两个位置并显示。oc深坑测试题及其答案 - 推酷
oc深坑测试题及其答案
一、选择题(共80题,每题1分)
不会立刻使引用计数器改变的是:
答案:(C)
A、release
C、autorelease
在OC中类的接口声明关键字为:
答案:(B)
A、@import
B、@interface
C、@implemention
D、@protocol
NSString *name = [[NSString alloc]initWithString:@&张三&];NSLog(@&%d&,[name retainCount]);上述代码打印结果是:
答案:(A)
下列选项中全部属于对象的是:
答案:(C)
A、我的白色iPhone4s;Mac Mini
B、狗;老虎
C、邻居家的猫咪“贝贝”;我的弟弟“张三”
D、保时捷;犀利哥
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
现有如下集合,能准确删除“张三”的代码是:NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@&张三&,@&左护法&,@&李四&,@&右使&,@&唐sir&,@&老大哥&, nil];
答案:(A)
A、[peoples removeObjectForKey:@&左护法&];
B、[peoples removeObject:@&张三&];
C、[peoples removeObjectAtIndex:0];
D、[peoples removeAllObjects];
关于类和对象的概念,下列属于对象的是:
答案:(C)
C、世界冠军刘翔
以下说法不正确的是:
答案:(A)
A、nonatomic:提供多线程保护,提高性能,在没有使用多线程的编程中可以选择使用。
B、assign:属性默认值。说明设置器直接进行赋值,针对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char)等等。
C、retain:此属性只用于obj-c的对象类型,对参数进行release旧值,再retain新值。
D、copy:此属性只对实现NSCopying协议的对象有效(NSString)。拷贝工作由copy方法执行。
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)
经过下列哪种操作后需要使用release方法。
答案:(C)
A、delegate
D、dealloc
声明一个方法:提供Student对象数组按照学号升序排列的判断条件:
答案:(A)
A、-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent
B、-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent
C、- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudent
D、+(int)compareWithNumberForAscendSort:(Student
下列哪个选项不需要release方法:
答案:(C)
A、[[NSString alloc]init];
B、[[NSString alloc] initWithString:@”hehe”];
C、[[NSArray arrayWithArray: arr1];
D、[[NSMutableDictionary alloc] init];
OC中,所有类的根类是:
答案:(A)
A、NSObject
C、NSCoding
下列哪个选项与@synthesize配合使用:
答案:(D)
B、@interface
C、@implementation
D、@property
向Xcode控制台输出一个字符串应该用:
答案:(A)
A、NSLog()
B、Printf()
C、NSPrintf()
D、scanf()
必须实现的协议方法使用:关键字声明.
答案:(C)
A、@property
B、@interface
C、@required
D、@protocol
NSMutableString * str = [[NSMutableString alloc] initWithFormat:@&123&];NSLog(@&str = %p&,str);[str appendFormat:@&456&];NSLog(@&str = %p&,str);上面代码对字符串str进行拼接后,2次打印的地址是否相同:
答案:(A)
C、随机打印
D、有时相同,有时不同
Objective-C的代码文件的后缀为:
答案:(B)
下列说法中错误的是:
答案:(C)
A、Objective-C不用&函数调用&,而用互相传递讯息.
B、Objective-C一个完整的类分为interface和implementation两块
C、Objective-C对象使用new分配内存,用delete释放
D、Objective-C协议分为非正式协议和正式协议
NSArray *array = [NSArray arrayWithObjects:@&one&, @&two&, @&three&,nil];NSLog(@&%@&,[array objectAtIndex:1]);NSLog(@&%@&,[array objectAtIndex:3]);控制台中打印的最后一条信息会是:
答案:(D)
D、崩溃信息
OC中布尔(BOOL)类型的变量的值只有:
答案:(B)
C、true/false
Objective-C中包含一个自定义的头文件应该使用:
答案:(C)
A、#include &&
B、#include&&
C、#import &&
D、#import&&
在OC中,类中成员变量的可见度(访问权限)不包括:
答案:(D)
A、@public
B、@protected
C、@private
D、@optional
OC中的委托最好声明成:
答案:(B)
D、readonly
面向对象的特性不包括:
答案:(D)
OC中与alloc相反的方法是:
答案:(C)
A、release
C、dealloc
用哪个关键字定义协议中必须实现的方法:
答案:(D)
A、@optional
B、@protected
C、@private
D、不用写关键字
下面哪些选项是属性的正确声明方式:
答案:(C)
A、@property(nonatomic,retain)NSString myS
B、@property(nonatomic,assign)NSString * myS
C、@property(nonatomic,assign)
D、@property(nonatomic,retain)
对于Objective-C中的方括号“[]”的作用,下列说法错误的是:
答案:(D)
A、用于通知某个对象该做什么
B、方括号内第一项是对象,其余部分是你需要对象执行的操作
C、在Objective-C中通知对象执行某种操作,称为发送消息.(也叫调用方法)
D、方括号中可以为空
以下代码执行后,person对象的retain count是多少:Person * person = [[Person alloc] init];[person retain]; [person release];
答案:(B)
创建对象时,对象的内存和指向对象的指针分别分配在哪里:
答案:(A)
A、堆区,栈区
B、常量区,堆区
C、全局区,栈区
D、栈区,堆区
协议与委托的描述不正确的是:
答案:(C)
A、委托是iOS的一种设计模式
B、协议里的方法默认是必须实现的
C、类接受了多个协议,这些协议写在父类后面的&&内,多个协议之间用“、”隔开
D、定义协议使用@protocol关键字
类何时调用dealloc方法:
答案:(D)
A、[property release]后
B、[instance release]后
C、[super dealloc]时
D、当引用计数为0时.
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、 17:45:04 PM
B、12-05-31 17:45:04
C、 17:45:04
D、12-05-31 05:45:04 PM
NSRange的成员变量有:
答案:(A)
A、location,length
B、width,height
C、location,height
D、length,width
现有自定义类Student,下列选项中Student类的便利构造器编写正确的是:
答案:(D)
A、-(id) initWithName:(NSString *) newName{&&Student * stu = [[Student alloc] init];&&
B、+(id) studentWithName:(NSString *) newName{&&Student * stu = [[Student alloc] init];&&
C、+(id) studentWithName:(NSString *) newName{&&Student * stu = [[Student alloc] init];&&
= newN&&[stu release];&&}
D、+(id) studentWithName:(NSString *) newName{&&Student * stu = [[Student alloc] init];&&
= newN&&[stu autorelease];&&}
自定义一个Person类,下面哪个选项是规范的便利构造器声明方式:
答案:(D)
A、-(id)personWithName:(NSString *)theN
B、-(id)personwithName:(NSString *)theN
C、+(id)personwithName:(NSString *)theN
D、+(id)personWithName:(NSString *)theN
下列代码正确的输出结果是:NSString * urlStr = @&
&;NSRange range = NSMakeRange(4,7);NSString *prefix = [urlStr substringWithRange:range];NSLog(@&%@&,prefix);
答案:(B)
B、lanou3g
C、www.lan
在OC中扩展类的方法的形式不包括:
答案:(B)
关于KVC的描述正确的是:
答案:(B)
A、KVC是指&Key-Value Observing&
B、是一种间接访问对象的属性的机制。
C、只能访问对象的属性。
D、当对象的属性值改变时,我们能收到一个通知。
以下说法正确的是:
答案:(C)
A、求数组的内容的个数用length方法
B、字典是根据其位置来索引数据的
C、协议中定义的方法默认是必须实现的
D、定义类目必须要拿到自己类的源代码
简单类型的成员比如:int类型成员在使用@property()时,括号中应使用:
答案:(A)
下列代码:@property(nonatomic,assign)id&Painting&myO
答案:(C)
A、是说myObject是Painting分类的一部分
B、是说myObject遵从于Painting分类
C、是说myObject遵从于Painting协议
D、不是合法的Objective-C语法格式
内存管理的关键字描述错误的是:
答案:(C)
A、retaincount是指对象的引用计数。
B、retain关键字可以增大对象的引用计数。
C、release可以减小对象的引用计数,但autorelease不可以
D、dealloc方法不能直接调用
下面程序段的输出结果是什么: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
下列有效的键路径是:
答案:(B)
A、[foo valueForKeyPath:@”1SomeMember”]
B、[foo valueForKeyPath:@”someMember.someAttribute”]
C、[foo valueForKeyPath:@”SOMEMEMBER@someAttibute”]
D、[foo valueForKeyPath:@”some Member”]
有一个类Student,要求实现:定义一个实例初始化方法,初始化方法需要传入名字和性别:
答案:(B)
A、-(id)initWithName:(NSString *)name sex:(NSString *)sex{&&if (self){&&&&
=&&&&self.sex =&&}&&}
B、-(id)initWithName:(NSString *)name sex:(NSString *)sex{&&if (self = [super init]) {&&&&
=&&&&self.sex =&&}&&}
C、-(id)initWithName:(NSString *)name sex:(NSString *)sex{&&if (!self) {&&&&
=&&&&self.sex =&&}&&}
D、-(id)initWithName:(NSString *)name sex:(NSString *)sex{&&if (self = [super init]) {&&&&
=&&&&self.sex =&&}}
下面哪个选项对集合的描述是正确的:
答案:(D)
A、集合内不能存不同类型的对象
B、集合内可以存整型的数
C、字典内键值可以相同,但是每个键值对应的对象必须不同
D、集合内只能存对象
NSString 和 NSMutableString的关系和区别描述不正确的是:
答案:(D)
A、NSString是不可变字符串,即本身内容不能被改变。
B、NSMutableString是可变字符串,即本身内容可修改。
C、NSMutableString是NSString的子类。
D、NSString和NSMutableString没有任何关系。
下面哪个选项无内存问题的:
答案:(C)
A、-(NSString *)description{&&NSString * str = [[NSString alloc] initWithFormat:@&description&];&&}
B、-(NSString *)description{&&NSString * str = [[NSString alloc] initWithFormat:@&description&];&&[str release];&&}
C、-(NSString *)description{&&NSString * str = [[NSString alloc] initWithFormat:@&description&];&&[str autorelease];&&}
D、-(NSString *)description{&&NSString * str = [NSString stringWithFormat:@&description&];&&return [str autorelease];}
关于NSSet描述正确的有:
答案:(B)
A、NSSet可以存放任何数据类型的数据。
B、NSSet存放数据是无序的。
C、NSSet可以通过下标获取数据。
D、NSSet存放的数据是有序的。
下列哪个选项不能作为property的可选属性:
答案:(A)
NSRange是什么数据类型:
答案:(C)
下面描述正确的选项是:
答案:(B)
A、当计数器为1时,dealloc方法由系统自动调用
B、一个对象在引用计数变为0时,会调用自己的dealloc方法
C、在dealloc方法里,应该在[super dealloc]后释放本类所拥有的对象
D、开启ARC后,可以重载dealloc,必须在dealloc里写 [super dealloc]方法
实例变量默认的访问修饰符是:
答案:(C)
A、@public
B、@private
C、@protected
D、@package
下面程序段的输出结果是什么:NSArray * arr1 = [[NSArray alloc] initWithObjects:@&1&,@&2&,@&3&, nil];NSString *str = [arr1 objectAtIndex:2];NSLog(@&%@&,str);
答案:(C)
D、程序崩溃
@interface Person : NSObject@property(nonatomic,retain)NSString *@end上面声明一个Person类Person * per = [[Person alloc] init];
= [[NSString alloc] initWithFormat:@&张三&];NSLog(@&
= %d&,[per.name retainCount]);
答案:(D)
A、per.name
B、per.name
C、per.name
D、per.name
下面程序段的输出结果是什么: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
关于协议描述不正确的是:
答案:(D)
A、协议分正式和非正式协议。
B、在要求确认协议的类必须实现协议中的方法时,可以使用@required。
C、一个协议可以被多个类确认。
D、协议中声明的方法,默认是@optional的。
下面哪个选项是正确的:
答案:(B)
A、用继承可以扩展一个类,要调用扩展的方法,既可以用父类,也可以用子类
B、用类目可以扩展一个类,可以直接用该类或该类的实例对象,去调用该类目扩展的方法
C、延展就是类目
D、可以在一个类的外部,调用这个类延展的方法
以下对类的描述不正确的是:
答案:(C)
A、类的接口部分可以包含实例变量、属性和方法
B、可以把声明和实现都放到.h文件中
C、一对文件(Person.h Person.m)只能定义一个类
D、类比较抽象,对象比较具体
声明一个返回值为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)
Objective-C 语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:
答案:(C)
A、@public
B、@private
C、@protected
D、@friendly
关于类目、延展的描述错误的是:
答案:(B)
A、延展主要为类提供“私有”方法
B、类目、延展不但能为类添加方法,而且都可以添加新的实例变量
C、无论能否拿到类的源码,类目都可以对其扩展
D、类目和延展声明语法不同
现要求声明一个集合,并将字符串添加到集合中,编写了如下代码,其中错误的是第几行: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)
查看下列代码,能正确输出number的选项是:&&@interface MyClass : NSObject{&&}+(void) printN@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、编译错误,无法执行。
读代码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)
对于下面代码说法正确的是:@property (copy,nonatomic,readonly)NSString * calValue;
答案:(D)
A、没有getter方法,当对calvalue赋值时,将产生一个NSString副本。
B、此属性可保证多线程安全。
C、此属性在合成时可以生成设置器方法。
D、此属性只能读取,不能赋值。
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)
下面程序段的输出结果是什么: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)
D、1,-1,-1
下面程序段的输出结果是什么: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、程序崩溃
写出下面程序段的输出结果:NSString * aString = [[NSString alloc] initWithString:@&123&];&[aString autorelease];NSMutableArray * arr = [NSMutableArray array];[arr addObject:aString];NSLog(@&string = %lu&,[aString retainCount]);
答案:(C)
C、整型最大值
NSMutableDictionary字典中删除对象可以使用下面那个方法:
答案:(D)
A、filteredArrayUsingPredicate:
B、arrayByAddingObject:
C、initWithCapacity:
D、setValue:forKey:
有如下一个类定义@interface MyClass:NSObject@property(nonatomic,retain)NSString *@end@implementation MyClass(1)-(NSString *)str{&&}-(void)dealloc{&&self.str =&&[super dealloc];}@end
答案:(C)
A、-(void)setStr:(NSString *)newStr{&&str = newS}
B、-(void)setStr:(NSString *)newStr{&&[str release];&&str = [newStr retain];}
C、-(void)setStr:(NSString *)newStr{&&if(str != newStr)&&{&&&&[str release];&&&&str = [newStr retain];&&}}
D、-(void)setStr:(NSString *)newStr{&&[newStr retain]&&[str release] = newS}
下列哪个操作不会引起引用计数(retaincount)的变化是:
答案:(B)
A、NSString *str1 = [[NSString stringWithFormat:@&hehe&];
B、int a=1;
C、NSMutableData *data1 = [NSMutableData allocWithZone:data2];
D、NSArray *arr1 = [[NSArray alloc]initWithArray:arr2];
下面程序段的输出结果是什么: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
下面程序段的输出结果是什么: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
下面程序段的输出结果是什么:int a = 10;NSNumber *b = [[NSNumber alloc] initWithInt:a];NSLog(@&%d&, a+++b);
答案:(D)
D、编译错误
下面程序段的输出结果是什么: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
下列选项中不能正常为emp的name属性赋值的代码有:
答案:(B)
A、emp.name=@&李嘉诚&;
B、emp-&name=@&李开复&;
C、[emp setValue:@&柳传志& forKey:@&name&];
D、[emp setName:@&黄光裕&];
二、判断题(共10题,每题1分)
一个文件中可以声明多个类。
答案:(T)
实例对象都是通过调用类方法生成的。
答案:(T)
方法需要传递多个参数时,参数以逗号分隔。
答案:(F)
不是每个对象都有引用计数。
答案:(F)
Objective-C 可以多重继承。
答案:(F)
为了保证程序不产生额外的内存开销,当对象不再被需要以后,应当被立即销毁。
答案:(T)
retain的作用是引用计数减一。
答案:(F)
注释可以出现在程序的任何位置。
答案:(T)
在dealloc方法中对变量的释放顺序与初始化的顺序相同。
答案:(F)
便利构造器产生的对象应当由使用者进行销毁。
答案:(F)
报露出的问题
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 定义一个出租车类 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信