美文网首页
iOS面试题整理

iOS面试题整理

作者: Alan晴天 | 来源:发表于2021-07-12 11:56 被阅读0次

    读书笔记之--《iOS程序员面试笔试真题与解析》猿媛之家/组编

    想要提高还得看书,印刷出版的书籍,虽不及网络更新及时,但内容容更系统化……

    1.1开发基础知识

    1、iOS用什么语言开发?开发工具是什么?

    2、什么是LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?

    3、Xcode项目中workspace与project的区别是什么?

    4、Xcode项目中target和scheme的区别是什么?

    5、Xcode中Build Settings、Build Phases和Build rules之间有什么区别?

    6、iOS工程的依赖管理工具有哪些?

    7、CocoaPods的工作原理是什么?

    8、使用Xcode创建工程时,支持同时创建的版本管理库是:

    9、Objective-C和Swift的区别是什么?

    10、“Cocoa”“Foundation”和“UIKit”的区别是什么?

    11、“Foundation”和“CoreFoundation”的区别是什么?

    12、什么是“懒加载”(Lazy Loading)?

    13、“AppID”和“Bundle ID”的区别是什么?

    14、iOS中动态库和静态库的区别是什么?

    2.1语言基础

    15、#import与#include、@class有什么区别?#import<>与#import“”又有什么区别?

    16、OC中堆和栈的区别是什么?

    17、OC中self和super有什么区别?为什么要用[super init]?

    18、属性和实例变量的区别是什么?如何对属性和实例变量进行访问权限的控制?属性如何做到选择性实现(自定义实现)setter和getter方法呢?

    19、@synthesize和@dynamic各表示什么?他们之间又什么区别?

    20、属性中的修饰关键字有哪些?(原子性语义、读写语义、内存管理语义)

    21、什么时候使用“weak”关键字?“assign”和“weak”有什么区别?

    22、nonatomic和atomic的区别是什么?atomic是绝对的线程安全吗?如果不是,那么应该如何实现?

    23、类方法和实例方法有什么区别?(1、2、3、4、5)

    24、类方法创造的对象是否需要release释放?

    25、什么是类工厂方法?(1、2、3)

    26、OC中有方法的重载吗?

    27、OC中基本数据类型有哪些?(三种数据类型:基本数据类型、对象数据类型、id数据类型)

    28、OC中的NSInteger类型和C语言中的int类型有什么区别?

    29、常见的OC的数据类型有哪些?与C语言的基本数据类型有什么区别?

    30、id声明的变量有什么特性?id和C语言的void*之间如何转换?

    31、instancetype和id有什么区别?什么是关联返回类型、非关联返回类型?

    32、在OC中,前置运算和后置运算有什么区别?

    33、OC有多继承吗?没有的话用什么替代?

    34、OC中有虚基类的概念吗?(C++多重继承二异性)

    35、使用protocol时,声明一组可选择实现与否的函数,需要在声明的前一行加上______?必须要实现的函数前一行要加上________?

    36、OC中Category的作用是什么?给现有的类添加新的方法时,OC中有4种方法可以做到分别是?

    37、Category的优点4和缺点5?

    38、Category的实现原理是什么?Category为什么只能加方法,不能直接添加实例变量?

    39、Category中使用关联对象生成属性的原理是什么?

    40、Category中有load方法吗?Category中的load方法是什么时候调用的?load方法能继承吗?

    41、block的原理是什么?使用的时候需要注意什么?

    42、如何解决block的循环引用?

    43、__block和__weak修饰符的区别有哪些?

    44、OC类方法load和initialize的区别?

    45、copy方法时深复制还是浅复制?

    46、什么是runtime?

    47、什么是isa指针?它的作用是什么?

    48、什么是non-pointer isa和Tagged Pointer?

    49、对语句NSString* obj =[ [NSData alloc]init],编译时和运行时obj分别是什么类型?

    50、runtime如何实现weak变量的自动置nil功能?

    51、请根据runtime的实现描述weak变量赋值的全过程。

    52、能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?

    53、请简述OC中向一个对象发送消息的整个过程。

    54、OC中向一个nil对象发送消息会发上什么?

    55、ARC环境下,autoreleased对象什么时候释放?

    56、在ARC环境下需不需要手动添加@autoreleasedpool?

    57、在ARC环境下,是否还需要调用dealloc方法?(OC对象、非OC对象,如CoreFoundation)

    58、请简述runloop的基本概念和实现原理。                                

    59、为什么把NSTimer对象以NSDefaultRunLoopMode添加到主运行循环以后,滑动scrollview的时候NSTimer却不动了?

    60、NSTimer准吗?如果不准,那么如何实现一个精准的NSTimer?(什么是GCD)

    61、自旋锁和互斥锁的区别是什么?

    62、iOS如何进行线程间的通信?(1、2、3)

    63、你在项目中使用过多线程技术吗?iOS中哪些方式可以实现多线程?(pthread、NSThread、GCD、NSOperation)

    64、GCD和NSOperation的区别有哪些?什么时候用GCD?什么时候用NSOperation?

    65、用NSOperation和NSOperationQueue处理A、B、C三个线程,要求执行完A、B后才能执行C,怎么做?

    66、请描述多线程安全问题的几种解决方案。(1、2、3)

    67、如何使用NSURLSession发送网络请求?

    68、NSURLConnection和NSURLSession有哪些区别?(1、下载方式;2、请求方式的控制;3、断点续传;4、配置信息)

    69、网络图片处理问题中怎么解决一个相同的网络地址重复请求的问题?

    70、在iOS中,混合HTML5开发App是如何实现的?在App中使用HTML5的优缺点是什么?

    5.1delegate和block

    71、delegate和block的区别是什么?block需要注意些什么?(他们的优缺点分别是什么,使用场景分别是什么)

    72、delegate的修饰词用weak,为什么不能用strong和assign呢?

    5.2KVC和KVO

    73、什么是KVC和KVO?(键值编码、键路径、键值观察;写代码)

    74、KVO的原理是什么?(KVO原理图)

    5.3推送和通知

    75、NSNotification、Delegate、Block和KVO之间的区别是什么?(举例:股市)

    6.1持久化方案

    76、iOS中有哪些持久化数据的方案?你平时喜欢用哪一种?为什么?

    77、什么是归档?归档对象属性中含有自定义对象怎么办?

    78、什么是NSManagedObject模型?描述一下托管对象上下文和他提供的方法。

    79、iOS的沙盒目录结构是怎样的? 

    (什么是沙盒,它的作用是什么,目录结构如何,每个目录如何获取)

    80、plist文件是用来做什么的?一般用它来处理什么方面的问题?

    (plist的本质、用于存储哪些数据、使用过程:手动创建、代码创建)

    81、什么是对象的序列化和反序列化,它们用来做什么?

    常见的序列化格式: 、、、

    82、OC中如何实现复杂对象的存储?

    83、使用NSUserDefault时,如何处理布尔的默认值?

    7.1视图和UI控件

    84、UIView和CALayer是什么关系?

    85、loadView的作用是什么?重写loadView时需要写[super loadView]吗?为什么?重写loadView的作用是什么?

    86、viewWillLayoutSubview的作用是什么?都什么时候会调用viewWillLayoutSubview?

    87、使用drawRect有什么影响?需要注意些什么?

    88、如何高性能地给UIImageView加个圆角?(什么是当前屏幕渲染、离屏渲染)

    89、请简述UITableView的复用机制,如何解决cell复用的问题(新的子视图和旧的子视图重叠的现象)?

    90、请描述UITableView的优化,如何高性能计算cell高度?

    7.2动画

    91、CADisplayLink于NSTimer有什么不同?(通过代码分析)

    92、改变UIView的哪些属性能够产生动画效果?

    93、什么是隐式动画和显式动画?(CALayer的可动画属性、非关联图层)

    backgroundColor、bounds、transform、opacity、anchorPoint;UIView除了根图层的其他子图层。

    94、Cocoa Touch提供了哪几种Core Animation过渡类型?

    8.1AFNetworking

    95、使用第三方框架的时候,是否仔细研读过他们的源码吗?AFNetWorking的底层原理是什么?

    96、使用AFNetworking做过断点续传吗?(断点续传的主要思路)

    97、AFNetworking默认超时时长是多少?

    8.2、SDWebImage

    98、SDWebImage的原理是什么?

    9.1设计模式

    99、单例模式的弊端有哪些?

    优点:1、2、3

    缺点:1、2、3、4

    100、如何理解MVVM(Model-View-ViewModel)设计模式?

    特点:1、2、3、4

    9.2编译和调试

    101 、怎么防止iOS中的反编译?

    反编译安全风险:1、2、3、4

    解决方案:1、2、3、4、5

    102、什么是dSYM?dSYM是如何分析的?

    103、BAD_ACCESS在什么情况下出现?

    104、0x8badf00d表示什么?

    105、如何检测内存泄漏?

    相关文章

      网友评论

          本文标题:iOS面试题整理

          本文链接:https://www.haomeiwen.com/subject/omfkultx.html