iOS面试题 一共分为
笔试题和面试题两部分
笔试题一共分为10个 总共613题
面试题一共400题
笔试题 一个10个系列 分别为
①(语法篇) 共147题 已更新
②(常识篇) 共72题 已更新
③(界面篇) 共83题 已更新
④(iOS篇) 共52题 已更新
⑤(操作篇) 共68题 已更新
⑥(数据结构篇) 共23题 已更新
⑦(多线程篇) 共60题 已更新
⑧(网络篇) 共22题 已更新
⑨(多媒体篇) 共59题 已更新
⑩(安全篇) 共27题 已更新
面试题一共分为3个 总共400题
⑪(面试篇 1/3) 共127题 已更新
⑪(面试篇 2/3) 共137题 已更新
⑪(面试篇 3/3) 共136题 已更新

iOS面试1000题以及答案-笔试题-①语法篇
-
- 笔试题 613题
- ⭐️①、笔试题-语法篇(147题)
-
- 1.与alloc相对应的方法是:[单选题]
- 2.与retain相对应的方法是:[单选题]
- 3.@property的作用是申明属性及其特性?:[单选题]
- 4.@synthesize的作用是自动生成属性的访问器(getter/setter)方法?:[单选题]
- 5.一个对象的dealloc方法在什么时候被调用:[单选题]
- 6.分类(categoryes)能够向一个已有的类中添加:[单选题]
- 7.扩展(extensions)能够在当前类中增加[多选题]
- 8.协议(protocol)可以分为两种,其中以哪种关键字声明的协议可以不被实现:[单选题]
- 9.那个类是大多数Objective-C类继承的根类,它没有父类[单选题]
- 10.代理(delegate)的作用是让一个对象实现另一个对象的方法?[判断题]
- 11.`autorelease`的作用是:[多选题]
- 12.`-(void)setName:(Nsstring)NewName{ self.name = NewName}`:被调用的结果是:[单选题]
- 13.在`KVC`中通用的属性访问器方法是那两个:[多选题]
- 14.关键字`nil`在Objective-C中表示:[单选题]
- 15.`#import`和`#include`的区别是: `#import`可以避免文件被多次引用?:[判断题]
- 16.在Objective-C是否支持运算符重载:[判断题]
- 17.在Objective-C中能否在头文件申明私有方法:[判断题]
- Objective-C关键字说明
- 18.在Objective-C中,类的成员变量默认被申明为:[单选题]
- 19.关于Objective-C++中的异常处理,下面说法最正确的是:[单选题]
- 20.在对象的`dealloc`方法中,关于`[super dealloc]`:语法说法正确的是:[单选题]
- 21.下面关于方法:`[[[object method1]method2] method3:[object method4]];`中的method调用的顺序是:[单选题]
- 22.ARC`(Automatic Reference Counting)`模式下,下面那个方法是未被禁用的:[单选题]
- 23.下列对象中不能调用`initWithContentsOfFile`方法进行构造的是:[单选题]
- 24.下面哪些关键字会引用对象的引用计数`(retainCount)`加一:[多选题]
- 25.在以.mm为扩展名的文件里,可以包含的代码有哪些:[多选题]
- 26.下面哪些类中使用到了单例`(Singletion)`模式:[多选题]
- 27.下面个数据类型中,能够直接放进`NSArray`数组的有:[多选题]
- 28.Objective-C的快速`枚举`对比`循环`访问的优点,下面说法正确的是:[多选题]
- 29.OC包含一个`自定义的头文件`应该使用:[单选题]
- 30.必须`实现的协议`方法使用那个关键字声明:[单选题]
- 31.声明一个方法:提供Student对象数组按照学号`升序排序`的判断条件:[单选题]
- 32.OC语法中类的实例变量如果`只可以被本类和其子类访问`,需要下列那个修饰符:[单选题]
- 33.关于集合描述不正确的是:[单选题]
- 34.`NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"aKey"];` NSLog(@"%@",[dict objectForKey:@"aKey"]);[dict release];输出什么 :[单选题]
- 35.向OC控制台输出一个字符串应该用 :[单选题]
- 36.名为print::的方法有几个传入参数 :[单选题]
- 37.下列那个选项与`@synthesize`配合使用 :[单选题]
- 38.在Objective-C中,所有类的根类是 :[单选题]
- 39.能准成删除"张三"的代码是 `NSMutableDictionary *people = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法", nil];` :[单选题]
- 40.使用OC语言实处"This is Objective-C program."正确的是 :[单选题]
- 41.`协议与委托`的描述不正确的是 :[单选题]
- 42.关于`协议`描述不正确的是 :[单选题]
- 43.下面关于`类`概念的描述中,错误的是 :[单选题]
- 44.在Objective-C中,下面哪些选项是`属性的正确声明方式` :[单选题]
- 45.`NSString *name= [[NSString alloc]initWithString:@"张三"]; NSLog(@"%d",[name retainCount]);` 以上代码输出的内容是多少:[单选题]
- 46.不会立刻使引用计数器改变的是:[单选题]
- 47.OC中的`委托`最好声明成:[单选题]
- 48.经过下列哪种操作后需要使用release:[单选题]
- 49.在OC中`类`的接口`声明`关键字为:[单选题]
- 50.-(id)setName:(NSString *)name :(NSString *)sex Age:(Int)age的方法名是:[单选题]
- 51.将@"2C青年"替换成@"有为青年"的代码是:[单选题]
- 52.下列回调机制的理解不正确的是:[单选题]
- 53.在Xcode中,需要编译混合Objective-C和C++的源码文件,需要将文件格式的后缀改为:[单选题]
- 54.Objective-C`声明一个类`所要用到的编译指令是:[单选题]
- 55.下面那个方法不属于NSObject的内省(Introspection)方法:[单选题]
- 56.使用`protocol`时,声明一组`可选择`实现与否的函数,需要在声明的前一行加上:[单选题]
- 57.下面关于`#import`和`#include`的描述正确的是:[单选题]
- 58.下面那个方法可以比较两个NSString *str1, *str2的`异同`:[单选题]
- 59.Objective-C有`私有方法`吗?有`私有变量`吗?:[单选题]
- 60.一个类的`delegate(代理)`的作用不正确的是:[单选题]
- 61.下面说法不正确的是:[单选题]
- 62.对于语句`NSString *obj = [[NSData alloc]init];`obj在`编译时`和`运行时`,分别是什么类型的对象:[单选题]
- 63.以下关于`类别`的作用,说法不正确的是:[单选题]
- 64.`Block`不允许修改`外部变量的值`:[判断题]
- 65.下面关于Objective-C中的`block`定义正确的是:[单选题]
- 66.下列关于iOS开发中`类方法`的使用描述,错误的是:[单选题]
- 67.以下那一段代码不会抛出异常:[多选题]
- 68.关于Swift语言中的`常量`和`变量`,以下说法正确的是:[多选题]
- 69.Swift4.0支持哪些输出函数?:[多选题]
- 70.关于Swift`注释`,以下说法正确的是:[多选题]
- 71.Swift`布尔类型的值`只能是true或者false?:[判断题]
- 72.Swift语言可以像C语言那样,用 非0表示true,用0表示false?:[判断题]
- 73.Swift语言可以像Objective-C那样,使用YES表示true,使用NO表示false?:[判断题]
- 74.关于Swift语言的Double和Float类型,以下说法正确的是:[多选题]
- 75.关于Swift字符串中的`转义符`,以下描述正确的是:[多选题]
- 76.以下对Swift中的`Switch`条件判断语句描述正确的是:[多选题]
- 77.Swift的`continue`语句,用来告诉用户一次循环体停止本次的循环,并立即进入下次的循环:[判断题]
- 78.以下那个语句,可以运行Swift代码在执行完一个`case`分支后,`跳到下一个case`分支中。:[单选题]
- 79.以下关于Swift语言中的`数组`,描述错误的是:[单选题]
- 80.以下关于Swift语言中的`字典`,描述正确的是:[多选题]
- 81.对Swift中的`函数`描述正确的语句是:[多选题]
- 82.在Swift环境中,无法为`函数`的参数设置默认值:[判断题]
- 83.关于Swift语言的`函数`,以下说法正确的是:[多选题]
- 84.Swift语言支持将`函数`作为`另一个函数的返回值`:[判断题]
- 85.Swift语言支持将`函数`作为`另一个函数的参数`?:[判断题]
- 86.Swift语言中的`函数`无法同时`返回多个值`:[判断题]
- 87.关于Swift语言的`内置函数`,以下描述正确的是:[多选题]
- 88.以下关于Swift语言的`枚举`类型,描述错误的是:[单选题]
- 89.以下关于Swift语言的`结构体`类型,描述错误的是:[单选题]
- 90.以下关于Swift语言的`类`和`结构体`,描述正确的是:[多选题]
- 91.以下关于Swift语言的`类`和`结构体`,描述正确的是:[多选题]
- 92.在Swift环境中,可以为`类`、`结构体`和`枚举`等类型定义`静态方法`?:[判断题]
- 93.在为`结构体`和`枚举`定义`静态方法`时,可以使用`static`关键字:[判断题]
- 94.在为`类`定义`静态方法`时,可以使用`class`关键字?:[判断题]
- 95.Swift和Objective-C一样是通过`自动引用计数(ARC)技术`,来实现对实例的内存管理的:[判断题]
- 96.在Swift环境中,`类`的`继承`不同于`结构体`和`枚举`类型,`继承`是`类`所特有的?:[判断题]
- 97.Swift的`延迟加载`属性是指当第一次被调用的时候,才会对其进行初始化操作的属性?:[判断题]
- 98.在Swift环境中,元组、`枚举`和`结构体`属于`引用类型`,而`类`则属于`值类型`:[判断题]
- 99.类型检查在Swift中,是使用`is`和`as` `操作符`来实现的?:[判断题]
- 100.Swift语言中的`AnyObject`,可以代表人和class类型的实例?:[判断题]
- 101.Swift语言中的`Any`可以表示人和类型,除了`方法类型(function types)`?:[判断题]
- 102.Swift中的`扩展功能(Extension)`,可以在没有权限获取原始源代码的情况下,扩展某个类型的功能:[判断题]
- 103.现有的`类`、`结构体`或`枚举`类型的方法。都可以在扩展的帮助下进行添加?:[判断题]
- 104.在Swift语言中,类型的功能可以使用`扩展`加入,但重写的功能能不能使用扩展?:[判断题]
- 105.在Swift语言中,使用`扩展`可以完成哪些任务?:[多选题]
- 106.`类`、`结构体`和`枚举`都可以遵循协议,并提供具体实现来完成`协议`定义的方法和功能:[判断题]
- 107.以下关于Swift语言中的可选`Optional`类型,描述正确的是:[多选题]
- 108.Swift没有Objective-C中的`#define`、`__OPTIMIZE__`宏定义方法?:[判断题]
- 109.在Swift中,我们可以给哪些类型定义`subscript`下标脚本的语法:[多选题]
- 110.以下关于Swift语言下标说法正确的是:[多选题]
- 111.Objective-C中的头文件和实现文件,请问.h文件类似C++的.h文件, .m文件类似.cpp文件?:[判断题]
- 112.Objective-C语言可以和C、C++混合编程吗?:[判断题]
- 113.Objective-C具有哪些动态特性:[多选题]
- 114.在Objective-C语言中,除了那几个方法之外创建的对象都是`autorelease`的?:[多选题]
- 115.在Objective-C只有`单一继承`,没有`多重继承`:[判断题]
- 116.如果你用Swift 写的`class` 是继承自`NSObject`,Swift会自动为所有非private的类和成员加上哪些标记?:[单选题]
- 117.Objective-C有哪些遍历(迭代)方式:[单选题]
- 118.如果`Category`和原始类中的方法名称冲突,则`Category`将覆盖原始类的方法。因为`Category`具有更高的优先级?:[判断题]
- 119.无法向`Category`中添加`实例变量`吗?:[判断题]
- 120.Objective-C的`Category`可以实现哪些功能?:[多选题]
- 121.以下哪些情况会在Objective-C中产生异常:[多选题]
- 122.以下哪些情况会在Objective-C中产生异常?:[多选题]
- Mach异常信号说明
- 123.Mach异常通常指底层的内核级异常,以下哪些属于Mach异常?:[多选题]
- 124.最常见Mach异常:`EXC_BAD_ACCESS`,一般是由于那两种情况造成的:[多选题]
- 125.Objective-C异常并非真正的异常,但是当一个异常被`抛出到最外层`还没有被捕获。程序会强行发送那个信号来`中断程序`:[单选题]
- 126.如果管理员发现某个`进程`终止不了,可尝试发送那个信号?:[单选题]
- 127.在以下列出的信号中,程序不可`捕获`,`阻塞`或`忽略`的信号有哪两个:[多选题]
- 128.在以下列出的信号中,默认会导致`进程退出的信号`有:[多选题]
- 129.在那个Swift版本中,Apple向开发者提供了两个类 `JSONENcoder` 和 `JSONDecoder`,使对象和JSON之间进行转换:[单选题]
- 130.Swift中枚举可以有`初始化方法`、也可添加`函数`[判断题]
- 131.Swift中的`结构体`可以添加`函数`、`扩展`,和实现`protocol`吗[判断题]
- 132.Swift中`字符串、数组和字典`是以`结构体`的形式实现的,还是以`类`的形式实现的?[判断题]
- 133.Swift中的Array、Dictionary、String都是`结构体`,传递时会进行拷贝。而不会改变原有的值吗?[判断题]
- 134.在Swift4中,以下那条语句可以获取`字符串的长度`[单选题]
- 135.`单向区间`主要分两种:确定上限和确定下限的区间。如6...,表示6及之和的所有控件。请问单项区间是由那个Swift版本带来的[单选题]
- 136.使用`runtime Associate` 方法关联的对象,需要在主对象`dealloc`的时候释放么?[判断题]
- 137.可以向`编译后`得到的类中增加实例变量?[判断题]
- 138.可以向`运行时`创建的类中添加实例变量?[判断题]
- 139.以下哪些是常见的`Carsh`场景[多选题]
- 140.`闭包`是`值类型`还是`引用类型`的?[判断题]
- 141.`weak`属性需要在`dealloc`中置为nil吗?[判断题]
- 142.在Objective-C中,向`nil`对象发送消息会导致`crash`吗?[判断题]
- 存储区说明
- 143.`runtime`会将`weak`对象放入哪种`数据结构`?[单选题]
- 144.`autoreleasepool` 是以一个`队列数组`的形式实现的,主要通过以下三个函数完成:[多选题]
- 145.Objective-C的`load`和`initlize`方法只会被`调用一次`吗?[判断题]
- 146.调用一个`类`的`静态方法`,需要`release`吗?[判断题]
- 147.以下哪些是RunLoop可以做到的:[多选题]
笔试题 613题
⭐️①、笔试题-语法篇(147题)
1.与alloc相对应的方法是:[单选题]
- A、alloc
- B、dealloc
- C、release
- D、autorelease
2.与retain相对应的方法是:[单选题]
- A、alloc
- B、dealloc
- C、release/autorelease
- D、copy
3.@property的作用是申明属性及其特性?:[单选题]
- A、正确
- B、错误
4.@synthesize的作用是自动生成属性的访问器(getter/setter)方法?:[单选题]
- A、正确
- B、错误
5.一个对象的dealloc方法在什么时候被调用:[单选题]
- A、引用计数(retuanCount)降为-1
- B、引用计数(retuanCount)降为1
- C、引用计数(retuanCount)降为2
- D、引用计数(retuanCount)降为0
6.分类(categoryes)能够向一个已有的类中添加:[单选题]
- A、方法
- B、属性
- C、动作
- D、协议
7.扩展(extensions)能够在当前类中增加[多选题]
- A、动作
- B、方法
- C、属性
- D、协议
8.协议(protocol)可以分为两种,其中以哪种关键字声明的协议可以不被实现:[单选题]
- A、@optional
- B、@required
- C、@none
- D、@userful
9.那个类是大多数Objective-C类继承的根类,它没有父类[单选题]
- A、NSNull
- B、NSInterger
- C、NSString
- D、NSObject
10.代理(delegate)的作用是让一个对象实现另一个对象的方法?[判断题]
- A、正确
- B、错误
11.autorelease的作用是:[多选题]
- A、将对象放入自动释放池
- B、将对象的引用计数减1
- C、延后调用release方法
- D、立即调用release方法
12.-(void)setName:(Nsstring)NewName{ self.name = NewName}:被调用的结果是:[单选题]
- A、设置name属性的值
- B、程序死循环
- C、获取name属性的值
- D、复制name属性的值
13.在KVC中通用的属性访问器方法是那两个:[多选题]
- A、valueForKey:
- B、setValue:forKey:
- C、getValueForKey:
- D、SetValue:
14.关键字nil在Objective-C中表示:[单选题]
- A、一个空对象
- B、一个空指针
- C、一个空字符
- D、一个空字节
15.#import和#include的区别是: #import可以避免文件被多次引用?:[判断题]
- A、正确
- B、错误
16.在Objective-C是否支持运算符重载:[判断题]
- A、正确
- B、错误
17.在Objective-C中能否在头文件申明私有方法:[判断题]
- A、可以
- B、不可以
Objective-C关键字说明
Objective-C关键字说明
@private作用范围只能在自身类
@protected作用范围在自身类和继承自己的子类,什么都不写,默认是此属性。
@public作用范围最大,在任何地方
@package不会被导出到外部, 所以任何试图在这个framework外面访问这些成员变量的类都会得到一个链接错误的结果.
18.在Objective-C中,类的成员变量默认被申明为:[单选题]
- A、@private
作用范围只能在自身类 - B、@protected
作用范围在自身类和继承自己的子类,什么都不写,默认是此属性。 - C、@public
作用范围最大,在任何地方 - D、@package
不会被导出到外部, 所以任何试图在这个framework外面访问这些成员变量的类都会得到一个链接错误的结果.
19.关于Objective-C++中的异常处理,下面说法最正确的是:[单选题]
- A、Objective-C不支持异常处理
- B、在Objective-C++中,Objective-C的异常处理能够捕获C++的异常
- C、在Objective-C++中,Objective-C的异常不能捕获到C++的异常
- D、在Objective-C++中,Objective-C和C++的异常处理可以相互捕获异常
20.在对象的dealloc方法中,关于[super dealloc]:语法说法正确的是:[单选题]
- A、[super dealloc];有没有都可以
- B、[super dealloc];应该放在dealloc方法内的第一行
- C、[super dealloc];应该放在dealloc方法内的最后一行
- D、[super dealloc];位置无所谓,只要在dealloc方法里有就可以
21.下面关于方法:[[[object method1]method2] method3:[object method4]];中的method调用的顺序是:[单选题]
- A、1 2 3 4
- B、1 2 4 3
- C、4 1 2 3
- D、4 3 2 1
22.ARC(Automatic Reference Counting)模式下,下面那个方法是未被禁用的:[单选题]
- A、retain
- B、copy
- C、release
- D、autorelease
23.下列对象中不能调用initWithContentsOfFile方法进行构造的是:[单选题]
- A、NSString
- B、NSXMLParser
- C、NSDicttionary
- D、NSData
24.下面哪些关键字会引用对象的引用计数(retainCount)加一:[多选题]
- A、alloc
- B、init
- C、retain
- D、copy
25.在以.mm为扩展名的文件里,可以包含的代码有哪些:[多选题]
- A、C
- B、Objective-C
- C、C++
- D、Swift
26.下面哪些类中使用到了单例(Singletion)模式:[多选题]
- A、FileManager
- B、NotificationCenter
- C、Application
- D、Device
27.下面个数据类型中,能够直接放进NSArray数组的有:[多选题]
- A、BOOL
- B、NSInteger
- C、NSString
- D、NSArray
28.Objective-C的快速枚举对比循环访问的优点,下面说法正确的是:[多选题]
- A、使用快速枚举效率更高
- B、语法更简洁
- C、使用更安全
- D、职场更多的数据类型
29.OC包含一个自定义的头文件应该使用:[单选题]
- A、#include
- B、#include<>
- C、#import“”
- D、#import<>
30.必须实现的协议方法使用那个关键字声明:[单选题]
- A、@property
- B、@interface
- C、@required
- D、@protocol
31.声明一个方法:提供Student对象数组按照学号升序排序的判断条件:[单选题]
- A、- (NScomparisonResult)compareWithNumberForAscendSort:(Student)otherStudent
- B、- (NSinteger)compareWithNumberForAscendSort:(Student)otherStudent
- C、- (BOOL)compareWithNumberForAscendSort:(Student)otherStudent
- D、- (int)compareWithNumberForAscendSort:(Student)otherStudent
32.OC语法中类的实例变量如果只可以被本类和其子类访问,需要下列那个修饰符:[单选题]
- A、@public
- B、@private
- C、@protected
- D、@friendly
33.关于集合描述不正确的是:[单选题]
- A、所有的集合都可以添加元素。
- B、集合分为可变集合、不可变集合。
- C、数组,字典额NSSet这三种集合存储数据的方式不同。
- D、所有集合都能保存id类型数据。
34.NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"aKey"]; NSLog(@"%@",[dict objectForKey:@“aKey”]);[dict release];输出什么 :[单选题]
- A、a value
在MacOS创建命令行项目 并且 设置 设置非ARC项目 是 会输出 a value - B、akey: a value
- C、崩溃信息
在iOS工程里面 设置非ARC项目会崩溃 - D、a vlaue : akey
35.向OC控制台输出一个字符串应该用 :[单选题]
- A、NSLog()
- B、Printf()
- C、NSPrintf()
- D、scanf()

这篇博客整理了iOS面试中涉及到的Objective-C语法、内存管理、类别、协议、Swift语言特性等多个方面的题目,包括Objective-C的alloc、retain、@property、@synthesize、协议实现、Block、Swift的枚举、结构体、类方法等知识点,帮助读者深入理解iOS开发中的关键概念。
最低0.47元/天 解锁文章
2215

被折叠的 条评论
为什么被折叠?



