IOS(25选择题).docx
【知识点详解】 1.自定义头文件导入:在Objective-C中,当需要包含自定义的头文件时,应使用`#import`关键字,且对于自定义的头文件通常使用双引号`""`来包裹文件名,因此正确答案是C.#import ""。 2.必须实现的协议方法:在Objective-C中,如果一个类遵循一个协议,并且协议中有`@required`标记的方法,那么这个类必须实现这些方法。所以,声明必须实现的协议方法的关键字是C.@required。 3.数组与集合操作:给定的代码创建了一个数组并将其元素添加到一个NSMutableSet中,NSSet是不允许有重复元素的集合。尽管数组中有重复的元素(如"2"),但集合中的计数将不会包含它们,所以控制台打印的结果是数组中不同的元素数量,即A.4。 4.方法声明:为了声明一个用于按照学号升序排列Student对象数组的方法,我们需要一个比较方法,它返回一个NSComparisonResult。因此,正确答案是A.-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent。 5.实例变量访问修饰符:若想让实例变量只被本类和其子类访问,应使用C.@protected修饰符。 6.集合知识:不是所有的集合都可以添加元素,例如,NSDictionary是不可变的,不能直接添加元素。所以描述不正确的选项是A. 7.字典操作:创建了一个NSDictionary并尝试获取键为"aKey"的值,这将在控制台打印出键值对的形式,即B.aKey : a value,然后释放字典对象,不会导致崩溃,因为只是释放了引用,不影响已打印的信息。 8.输出字符串:在Objective-C中,向控制台输出字符串通常使用NSLog函数,因此正确答案是A.NSLog()。 9.方法参数:方法名print::中的两个冒号表示传递两个参数,所以该方法有2个传入参数,答案是C.2。 10. @synthesize配合使用:在Objective-C中,@synthesize通常与@property一起使用,用于自动实现属性的setter和getter方法,所以正确答案是D.@property。 11.面向对象特性:面向对象编程的四大特性是封装、继承、多态和抽象,不包括构造,因此D.构造是不正确的。 12.所有类的根类:在Objective-C中,所有类的根类是A.NSObject。 13.删除集合元素:从NSMutableDictionary中删除键为"张三"的对象,应使用B.[peoples removeObject:@"张三"]。 14.输出字符串:在Objective-C中,使用NSLog输出字符串时,应将字符串放在%@占位符中,所以正确答案是D.NSLog(@"This a Objective-C program."); 15.协议与委托:不正确的描述是B.协议里的方法默认是必须实现的,实际上,默认情况下协议中的方法是非必需实现的。 16.协议描述:不正确的描述是C.类接受了多个协议,这些协议写在父类后面的内,多个协议之间用“.”隔开,实际上多个协议之间使用逗号(,)分隔。 17. @interface与@implementation:@interface用于声明类,@implementation用于实现类,它们是Objective-C中定义类的必备部分。 18.协议与类的关系:一个类可以遵循多个协议,通过在@interface后面使用``来指定。 19. @required与@optional:协议中使用@required标记的方法是必须实现的,而使用@optional标记的方法是可选实现的。 20.子类与父类的关系:子类可以继承父类的属性和方法,同时可以添加自己的属性和方法。 21.协议与委托模式:委托模式是一种设计模式,允许一个对象(如UIViewController)通过遵循特定协议来调用另一个对象(如UITableViewDataSource)的方法,实现两者之间的通信。 22.集合类型:NSArray是有序且不可变的集合,NSMutableArray是可变版本;NSSet是无序且不允许重复元素的集合,NSMutableSet是可变版本;NSDictionary是键值对的集合,NSMutableDictionary是可变版本。 23.销毁对象:Objective-C中使用release或autorelease来减少对象的引用计数,当计数为0时,对象会被销毁。这些题目涵盖了Objective-C的基础知识,包括类的定义、属性的使用、集合的操作、协议与委托的概念、以及面向对象的特性等。了解这些知识点有助于深入理解Objective-C编程。
27.88KB
文件大小:
评论区