iOS软件工程师笔试题系列1
2016-12-12 17:01
513 查看
资和信公司:
iOS企业笔试系列1—接下来的博文中还会有其他企业笔试题–持续更新中。。。
1、在Xcode中,需要编译混合Objective-C和C++的源码文件,需要将文件格式的后缀改为 (C)
A. .c
B. .cpp
C. .mm
D. .m
2、Object-C中声明一个类所要用到的编译指令是:(A)
A. @interface SomeClass
B. @protocol SomeClass
C. @implementation SomeClass
D. @autorelease SomeClass
3、多线程中栈与堆是公有的还是私有的: (C)
A.栈公有,堆私有
B.栈公有,堆公有
C.栈私有,堆公有
D.栈私有,堆私有
4、下面哪个方法不属于NSObject的内省(Introspection)方法:
A. init
B. isKindOfClass
C. responseToSelector
D. isMemberOfClass
讲解: http://blog.csdn.net/liyunxiangrxm/article/details/53542331
5、使用protocol时,声明一组可选择实现与否的函数,需要在声明的前一行加上: (B)
A. @required
B.@optional
C. @interface
D. @protocol
6、需要在手动管理内存分配和释放的Xcode项目中引入和编译用ARC风格编写的文件,需要在文件的Compiler Flags上添加参数:(C)
A. -shared
B. -fno-objc-arc
C. -fobjc-arc
D. -dynamic
7、下面关于Objective-C内存管理的描述错误的是 (A)
A. 当使用ARC来管理内存时,代码中不可以出现autorelease
B. autoreleasepool 在 drain的时候会释放在其中分配的对象
C. 当使用ARC来管理内存时,在线程中大量分配对象而不用autoreleasepool则可能会造成内存泄露
D. 在使用ARC的项目中不能使用NSZone
8、下面关于#import和#include的描述正确的是 (A)
A. #import 是 #include的替代指令,防止重复引用
B. #import 和 #include 不可以混合使用
C. #import 只用于引用Objective-C的文件, #include 只用于引用C和C++的文件
D. #import 和 #include的使用效果完全相同
9、在UIKit中,frame与bounds的区别是 (C)
A. frame 是 bounds 的别名
B. frame 是 bounds 的继承类
C. frame 的参考系是父视图坐标,bounds 的参考系是自身的坐标
D. frame 的参考系是自身坐标,bounds 的参考系是父视图的坐标
10、Objective-C有私有方法吗?有私有变量吗? (C)
A. 有私有方法和私有变量
B. 没有私有方法也没有私有变量
C. 没有私有方法,有私有变量
D. 有私有方法,没有私有变量
11、下面关于线程管理错误的是 (B)
A. GCD所用的开销要比NSThread大
B. 可以在子线程中修改UI元素
C. NSOperationQueue是比NSthread更高层的封装
D. GCD可以根据不同优先级分配线程
12、UIViewController在显示过程中,各个方法的调用顺序是 (A)
A. init -> viewDidLoad ->viewDidAppear -> viewDidUnload
B. init -> viewDidAppear ->viewDidLoad -> viewDidUnload
C. init -> viewDidLoad -> viewDidUnload -> viewDidAppear
D. init -> viewDidAppear -> viewDidUnload -> viewDidLoad
13、使用imageNamed方法创建UIImage对象时,与普通的init方法有什么区别? (C)
A. 没有区别,只是为了方便
B. imageNamed方法只是创建了一个指针,没有分配其他内存
C. imageNamed方法将图片加载到内存中后不再释放
D. imageNamed方法将使用完图片后立即释放
14、一个类的delegate(代理)的作用不正确的是 (D)
A. delegate中的函数在其他类中实现
B. 主要用于不同类型的对象之间一对一传递消息
C. 没有指派则不会触发
D. 可以一个对象的delegate指派给多个其他类型的对象
15、什么是key window? (C)
A. App中唯一的那个UIWindow对象
B.可以指定一个key的UIWindow
C. 可接收到键盘输入等事件的UIWindow
D. 不可以隐藏的那个UIWindow对象
16、属性 readwrite,readonly,assign,retain,copy,nonatomic 各 是什么作用,在那种情况下用?
17、什么是key window? (C)
A. App中唯一的那个UIWindow对象
B.可以指定一个key的UIWindow
C. 可接收到键盘输入等事件的UIWindow
D. 不可以隐藏的那个UIWindow对象
http://blog.csdn.net/liyunxiangrxm
iOS企业笔试系列1—接下来的博文中还会有其他企业笔试题–持续更新中。。。
1、在Xcode中,需要编译混合Objective-C和C++的源码文件,需要将文件格式的后缀改为 (C)
A. .c
B. .cpp
C. .mm
D. .m
2、Object-C中声明一个类所要用到的编译指令是:(A)
A. @interface SomeClass
B. @protocol SomeClass
C. @implementation SomeClass
D. @autorelease SomeClass
3、多线程中栈与堆是公有的还是私有的: (C)
A.栈公有,堆私有
B.栈公有,堆公有
C.栈私有,堆公有
D.栈私有,堆私有
解释: 在多线程环境下,每个线程拥有一个栈和一个程序计数器。栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源。其他的资源(比如堆、地址空间、全局变量)是由同一个进程内的多个线程共享。
4、下面哪个方法不属于NSObject的内省(Introspection)方法:
A. init
B. isKindOfClass
C. responseToSelector
D. isMemberOfClass
讲解: http://blog.csdn.net/liyunxiangrxm/article/details/53542331
5、使用protocol时,声明一组可选择实现与否的函数,需要在声明的前一行加上: (B)
A. @required
B.@optional
C. @interface
D. @protocol
6、需要在手动管理内存分配和释放的Xcode项目中引入和编译用ARC风格编写的文件,需要在文件的Compiler Flags上添加参数:(C)
A. -shared
B. -fno-objc-arc
C. -fobjc-arc
D. -dynamic
解释: 编译问题中普通语法问题: ARC问题 如果是工程ARC, 库是非ARC, -fno-objc-arc 如果工程是非arc,库是arc, -fobjc-arc 例如我们在ARC工程中加入SDWebImage,SDWebImage是MRC的 用时需要到里面加- -fno-objc-arc 一般我们现在的工程都用的是ARC的,所以我们添加的是-fno-objc-arc
7、下面关于Objective-C内存管理的描述错误的是 (A)
A. 当使用ARC来管理内存时,代码中不可以出现autorelease
B. autoreleasepool 在 drain的时候会释放在其中分配的对象
C. 当使用ARC来管理内存时,在线程中大量分配对象而不用autoreleasepool则可能会造成内存泄露
D. 在使用ARC的项目中不能使用NSZone
8、下面关于#import和#include的描述正确的是 (A)
A. #import 是 #include的替代指令,防止重复引用
B. #import 和 #include 不可以混合使用
C. #import 只用于引用Objective-C的文件, #include 只用于引用C和C++的文件
D. #import 和 #include的使用效果完全相同
9、在UIKit中,frame与bounds的区别是 (C)
A. frame 是 bounds 的别名
B. frame 是 bounds 的继承类
C. frame 的参考系是父视图坐标,bounds 的参考系是自身的坐标
D. frame 的参考系是自身坐标,bounds 的参考系是父视图的坐标
10、Objective-C有私有方法吗?有私有变量吗? (C)
A. 有私有方法和私有变量
B. 没有私有方法也没有私有变量
C. 没有私有方法,有私有变量
D. 有私有方法,没有私有变量
11、下面关于线程管理错误的是 (B)
A. GCD所用的开销要比NSThread大
B. 可以在子线程中修改UI元素
C. NSOperationQueue是比NSthread更高层的封装
D. GCD可以根据不同优先级分配线程
12、UIViewController在显示过程中,各个方法的调用顺序是 (A)
A. init -> viewDidLoad ->viewDidAppear -> viewDidUnload
B. init -> viewDidAppear ->viewDidLoad -> viewDidUnload
C. init -> viewDidLoad -> viewDidUnload -> viewDidAppear
D. init -> viewDidAppear -> viewDidUnload -> viewDidLoad
解释:当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序 1、 alloc 创建对象,分配空间 2、init (initWithNibName) 初始化对象,初始化数据 3、loadView 从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图 4、viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件 5、viewWillAppear 视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了 6、viewDidAppear 视图已在屏幕上渲染完成 当一个视图被移除屏幕并且销毁的时候的执行顺序,这个顺序差不多和上面的相反 1、viewWillDisappear 视图将被从屏幕上移除之前执行 2、viewDidDisappear 视图已经被从屏幕上移除,用户看不到这个视图了 3、dealloc 视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放 关于viewDidUnload :在发生内存警告的时候如果本视图不是当前屏幕上正在显示的视图的话, viewDidUnload将会被执行,本视图的所有子视图将被销毁,以释放内存,此时开发者需要手动对viewLoad、viewDidLoad中创建的对象释放内存。 因为当这个视图再次显示在屏幕上的时候,viewLoad、viewDidLoad 再次被调用,以便再次构造视图。
13、使用imageNamed方法创建UIImage对象时,与普通的init方法有什么区别? (C)
A. 没有区别,只是为了方便
B. imageNamed方法只是创建了一个指针,没有分配其他内存
C. imageNamed方法将图片加载到内存中后不再释放
D. imageNamed方法将使用完图片后立即释放
解释:imageNamed是会把读取到的image存在某个缓存里面,第二次读取相同图片的话系统就会直接从那个缓存中获取,从某种意义上好像一种优化,但是imageNamed读取到的那个图片似乎不会因为Memory Warning而释放,所以用这个会导致在内存不足的时候闪退。简单的说imageNamed采用了缓存机制,如果缓存中已加载了图片,直接从缓存读就行了,每次就不用再去读文件了,效率会更高 。
14、一个类的delegate(代理)的作用不正确的是 (D)
A. delegate中的函数在其他类中实现
B. 主要用于不同类型的对象之间一对一传递消息
C. 没有指派则不会触发
D. 可以一个对象的delegate指派给多个其他类型的对象
15、什么是key window? (C)
A. App中唯一的那个UIWindow对象
B.可以指定一个key的UIWindow
C. 可接收到键盘输入等事件的UIWindow
D. 不可以隐藏的那个UIWindow对象
16、属性 readwrite,readonly,assign,retain,copy,nonatomic 各 是什么作用,在那种情况下用?
1. readwrite 是可读可写特性;需要生成 getter 方法和 setter 方法时 2. readonly 是只读特性 只会生成 getter 方法 不会生成 setter 方法 ;不希望属性在 类外改变 3. assign 是赋值特性,setter 方法将传入参数赋值给实例变量;仅设置变量时; 4. retain 表示持有特性,setter 方法将传入参数先保留,再赋值,传入参数的 retaincount 会+1; 5. copy 表示赋值特性,setter 方法将传入对象复制一份;需要完全一份新的变量时。 6. nonatomic 非原子操作,决定编译器生成的 setter getter 是否是原子操作,atomic 表示多线程安全,一般使用 nonatomic
17、什么是key window? (C)
A. App中唯一的那个UIWindow对象
B.可以指定一个key的UIWindow
C. 可接收到键盘输入等事件的UIWindow
D. 不可以隐藏的那个UIWindow对象
http://blog.csdn.net/liyunxiangrxm
相关文章推荐
- ios笔试题系列01
- Java笔试 系列三
- 应聘Java,jsp,j2ee软件工程师笔试中可能出现的问题
- 华为C/C++笔试题(附答案,华为面试题系列)
- 2005年华为招聘--C语言笔试试题--招聘试题系列(一)
- 面试笔试系列之三 字符串相关
- 面试笔试系列之一 c与c++ static关键字解析
- 应聘Java,jsp,j2ee软件工程师笔试中可能出现的问题
- Cisco Catalyst 4500 系列交换机IOS 升级配置文档
- ASA5500系列防火墙恢复IOS全过程
- 笔试题系列之三
- 定制化软件工程师笔试题
- 世联地产软件工程师笔试试题
- 笔试收录---百度[软件工程师]
- 2007年11月神州数码软件工程师(网络公司)招聘笔试题目
- 笔试题系列之四
- Java笔试 系列一
- Cisco 2900系列IOS恢复
- 华为C/C++笔试题(附答案,华为面试题系列)
- 华为C/C++笔试题(附答案,华为面试题系列)