iOS面试1000题以及答案-笔试题-⑪面试篇 2/3篇
- ⭐️⑪、面试题-第②篇 2/3篇(137题)
- 1.控制器`View`的`生命周期`及`相关函数`是什么?你在开发中是如何用的?
- ⭐️2.请描述`NSRunLoop`的`实现机制`,及在`多线程`中如何使用?
- 3.iOS7之前,`后台执行`内容有`几种形式`,都是什么?
- 4.简单说一下`APP`的`启动过程`,从`main`文件开始?
- 5.把`程序`自己`关掉`和程序进`入后台`,`远程推送`的区别?
- 6.`本地通知`和`远程推送`通知的`基本概念`和`用法`?
- 7.列举现在熟悉`iOS开发库`和`第三方库`?
- 8.有些图片`加载的比较慢`怎么处理?你是怎么`优化程序`的`性能`的?
- ⭐️9.你`实现`过`一个框架`或`库`以供别人使用么?如果有,请谈一谈构建经验;如果没有,请设想和`设计框架`的API,并指出大`需要如何做`、`需要注意`一些什么方面?
- 10.`App`需要加载`超大量的数据`,给服务器发送发送请求,但是服务器卡住了如何解决?
- 11.你在`实际开发`中,有哪些`手机架构`与`性能调试经验`?
- 12.`即时通讯`中的`大数据处理`?
- 13.如果在`网络数据`处理过程中,发现一处`比较卡`,一般`怎么解决`?
- 14.怎么解决`sqlite` `锁定`的问题?
- 15.`runtime`怎么添加`属性`、`方法`等?
- 16.`runtime`如何实现`weak`属性?
- 17.`runtime`如何通过`selector`找到对应的`IMP`地址?(分别考虑类方法和实例方法)
- 18.使用`runtime` `Associate`方法`关联的对象`,需要在主对象dealloc的时候`释放`么?
- 19.`对象`的`内存销毁` `时间表`,分哪几个`步骤`?
- 20.`_objc_msgForward`函数是做什么的?`直接调用它`将会`发送什么`?
- 21.能否向`编译后`得到的`类`找那个`增加` `实例变量`?能否向`运行时`创建的`类`中添加`实例变量`?为什么?
- 22.简述下`Objective-C`调用`方法的过程`(`runtime`)。
- 23.什么是`method swizzling`?
- 24.Objective-C类的`load`和`initialize`的区别?
- 25.对`数组中`的元素`去重复`: NSArray *array = @[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];
- 26.使用`集合`对数组中的元素`去重复`:NSArray *array = @[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];
- 27.使用`字典`对数组中的元素`去重复`:NSArray *array = @[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];
- 28.使用`NSSet`对数组中的元素`去重复`:NSArray *array = @[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];
- 29.使用`NSOrderedSet`对数组中的元素`去重复`:NSArray *array = @[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];
- 30.谈谈你对`NSArray`和`NSMutableArray`的理解。
- 31.谈谈你对`NSSet`和`NSMutableSet`的理解。
- 32.谈谈你对`NSDictionary`和`NSMutableDictionary`的理解。
- 33.简单描述一下`XIB`和`Storyboards`,说一下他们的`优缺点`。
- 34.请把`字符串`2018-03-11格式化`日期`转为`NSDate`类型
- 35.在`App`中`混合HTML5开发`App`如何实现`的。在`App`中使用`HTML5`的`优缺点`是什么?
- 36.请描述一下`同步`和`异步`,说说它们之间的的`区别`
- 37.简述以下iOS的`内存管理`,在开发中对于`内存的使用`和`优化`包含哪些方面。我们在开发中应该注意哪些问题。
- 38.`plist`文件时用来`做什么`的。一般用它来`处理`一些`什么方面`的问题。
- 39.iOS中`缓存`一定量的`数据`以便`下次可以快速执行`,那么`数据`会`存储`在什么地方,有`多少种存储方式`?
- 40.在提交`苹果审核`时,遇到`哪些问题`被拒绝。对于被拒绝的问题是`如何处理`的?
- 41.Objective-C `Runtime`是什么?
- 42.`Method Swizzling`原理
- 43.`深浅复制`和属性为`copy`,`strong`值得变化问题。
- 44.`NSTimer`创建后,会在`哪个线程`运行。
- 45.`KVO`,`NSNotification`,`delegate`及`block`区别是什么?
- 46.如何让`计时器`调用一个`类方法`?
- 47.调用一个`类`的`静态方法`需不需要release?
- 48.`static` `作用`?
- 49.使用`递归方式`,反转`二叉树`。
- 50.`不要`使用`递归方式`,反转`二叉树`。
- 51.使用`objective-C`编写一个`单例`。
- 52.使用`Swift`编写一个`单例`。
- 53.iOS`应用程序`的`状态`有哪些?
- 54.网络请求中`post`和`get`的区别?
- 55.什么是`事件响应链` Responder Chain?
- 56.点击`屏幕`是`如何互动`的?
- 57.`RunLoop`是什么,使用的`目的`,何时`使用`和`关注点`?
- 58.`RunLoop`有哪些`作用`?
- 59.什么时候`使用` `RunLoop`?
- 60.常见的`多线程处理方式`及`优缺点`是什么?
- 61.`dispatch_sync` 和`dispatch_async` 区别是什么?
- 62.请说明并比较以下关键字`__weak` 和`__block`
- 63.什么是ARC?
- 64.以scheduledTImerWithTimeInterval的方式触发的timer,在滑动页面上的列表时,timer会暂停,为什么?如何解决?
- 65.Swift的(class)和结构体(struct)有什么区别?
- 66.Swift的class有哪些功能是struct没有的?
- 67.Swift的struct相对于class有什么优势?
- 68.Swift是面向对象还是函数式的编程语言?
- 69.请说明并比较Swift语言中的一些关键词:Open,Public,Internal,File-private,Private?
- 70.请说明并比较Swift语言的以下关键词:strong,weak,unowned?
- 71.Swift语言中的weak和unowned的使用场景有哪些差别。
- 72.调用Swift实现或(||)操作
- 73.使用Swift实现一个函数。求一个整型二维数组中所有元素之和?
- 74.说说Swift为什么将String,Array,Dictionary设计成值类型?
- 75.在Swift和Objective-C的混编项目中,如何在Swift文件中调用Objective-C文件已经定义的方法?如何在Objective-C文件中调用Swift文件中的方法?
- 76.用Swift将协议(protocol)中的部分方法设计成可选(optional),怎么实现?
- 77.要给一个UIButton增加一个点击后抖动的效果,该怎样实现?
- 78.试比较Swift和Objective-C中的初始化方(int)有什么异同?
- 79.谈谈对Objective-C和Swift动态特性的理解?
- 80.在一个app中间有一个Button,在你手触摸屏幕点击后,到这个Button受到点击,中间发生了什么?
- 81.介绍下内存的几大区域?
- 82.你是如何组件化解耦的?
- 83.runtime如何通过selector找到对应的IMP地址?
- 84.runtime内部实现逻辑?
- 85.GCD执行原理?
- 86.怎么防止别人反编译你的app?
- 87.如何优化应用程序的启动速度?
- 88.如何优化应用程序的页面浏览速度?
- 89.如何优化应用程序的操作流畅度?
- 90.如何优化应用程序的客户端和服务端的交互?
- 91.如何优化应用程序的数据库?
- ⭐️92.遇到tableview卡顿嘛会造成卡顿的原因大致有哪些?
- 93.timer准吗?谈谈你的看法?如果不准该怎么实现一个精准的Timer?
- 94.编译过程做了哪些事情?
- 95.只有OC对象才需要进行内存管理的本质原因?
- 96.请介绍一下isa指针,怎么用,用来干嘛?
- 97.@synthesize和@dynamic 分别有什么作用?
- 98.KVO的内部实现原理?
- 99.简述应用程序按Home键进入后台时的生命周期,以及从后台回到前台时的生命周期?
- 100.NSOPerationQueue相对于GCD来说有哪些优点?
- 101.runtime如何实现weak变量的自动置nil?
- 102.常用设计模式及应用场景?
- 103.UIButton的继承关系?
- 104.谈一谈你对UITableview的优化和重用的理解?
- 105.圆角图片如何优化?
- 106.什么是死锁,如何防止死锁?
- 107.block为什么要修饰为copy?
- 108.block循环引用,block分配在栈还是堆,什么情况下block会从栈区复制到堆区?
- 109.OC如何调用js代码;js调用OC的代码?
- 110.应用之间如何唤起?
- 111.NSString为什么用copy修饰?
- 112.JSPath使用了iOS的什么原理?
- 113.使用drawRect有什么影响?
- 114.C和Objective-C如何混用?
- 115.谈谈你对静态链接库的理解?
- 116.谈谈你对fmmpeg框架的理解?
- 117.谈谈你对fmdb框架的理解?
- 118.什么是沙盒模型Sandbox?
- 119.沙盒模型的四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么?
- 120.你使用过json解析方法么,它们的底层是如何处理的你了解么?
- 121.xml解析的原理是什么,你还用过其他解析方式么?
- 122.你在开发大型项目的时候,如何进行内存泄露检测的?
- 123.让一个物体从界面中的一点运动到另一点,有哪些方法?
- 124.以下每行代码执行后,person对象的retain count分别是多少?
- 125.在一个对象的方法里面:self.name = "object" 和 name = "object" 有什么不同吗?
- 126.谈谈您对@synthesize、@dynamic的理解?
- 127.什么是设计模式?聊聊你所知道的设计模式。
- 128.请谈谈数组和链表的区别。
- 129.请谈谈你对顺序查找算法的看法?
- 130.请谈谈你对二分查找(拆半查找)算法的看法?
- 131.请谈谈你对二叉树查找算法的看法?
- 132.请谈谈你对哈希表法(散列表)的看法?
- 133.请谈谈你对分块查找算法的看法?
- 134.UITableviewCelll上有个UILabel,显示NStimer实现的秒表事件,手指滚动cell过程中,label是否刷新,为什么?
- 135.什么情况使用weak关键,相比assign有什么不同?
- 136.怎么用copy关键字?
- 137.这个写法会出现什么问题:@property(copy)NSMutableArray *array?
##面试题 400题