iOS-进阶题目iOS 开发技术之经验总结篇iOS面试准备

从基础到进阶、底层的188道iOS面试题,上篇(1-87)

2020-12-07  本文已影响0人  iOS__开发者皮皮峰

'写给读者的话👇'
这些是我对iOS面试时会碰到的问题的解决方法,梳理和整合百度、阿里等100家企业面试题,想要更加详细的查看题目的回答,已链接出比较完全的答案,出来分享给大家,题目下的回答有点错误那也是正常的了,希望对大家有所帮助。大家有更好的解决办法也欢迎沟通交流。对于技术不足之处,还望谅解和大佬的指导!!🎈


最后欢迎加入我的iOS交流圈资料获取:
+裙:196800191 或者是+ WX(XiAZHiGardenia)免费获取! 获取面试资料 简历模板 一起交流技术
分享内容包括逆向安防、算法、架构设计、多线程,网络进阶,还有底层、音视频、Flutter等等......
重点是免费喔!!!

这下面的回答可能有些不全面,但是已经链接其他文章可以直接点击题目!!查看详情答案🎈


1、2020 iOS面试题----swift和oc的区别?

区别1: swift中使用let定义常量,var定义变量.常量一经赋值,不可以进行修改,变量赋值后可更改.
swift能够根据右边的代码,推倒出该变量的准确类型.


2、2020 iOS面试题——编译链接?

3、2020 iOS面试题——synthesize & denamic

4、2020 iOS面试题——在项目开发中常用的开发工具有哪些?

5、2020 iOS面试题——UITableView & UICollection

6、2020 iOS面试题——NSProxy & NSObject

7、2020 iOS面试题——Object & Swift

8、2020 iOS面试题——传达通知&推送通知(本地&远程)

9、2020 iOS面试题——第三方库
00 2020 iOS面试题——第三方平台

10、2020 iOS面试题——NSCache & NSDcitionary

11、2020 iOS面试题—— UIView和setNeedsDisplay和setNeedsLayout方法

方法


12、2020 iOS面试题——UIView
>>>>2020 iOS面试题——UILayer

动画的运作:对UIView的subLayer (非主Layer)属性进行更改,系统将自 动进行动画生成,动画持续时间的缺省值似乎是0.5秒。
坐标系统 :CALaye啲坐标系统比UIView多了一个anchorPoint属性,使用 CGPoi nt结构表示,值域是0〜1,是个比例值。
渲染:当更新层,改变不能立即显示在屏幕上。当所有的层都准备好时, 可以调用setNeedsDispla y方法来重绘显示。
变换:要在一个层中添加一个3D或仿射变换,可以分别设置层的transform 或 affi neTran sform 属性。
变形: Quartz Core的渲染能力,使二维图像可以被自由操纵,就好像是三 维的。图像可以在一个三维坐标系中以任意角度被旋转,缩放和倾斜。
CATra nsform3D的一套方法提供了一些魔术般的变换效果。

UIView 的 layer 树形在系统内部,被维护着三份 copy。

分别 shi 逻辑树:这里是代码可以操纵的;
动画树:是一个中间层,系统就在这一层上更改属性,进行各种渲染操作;
显示树:其 内容就是当前正被显示在屏幕上得内容。

动画的运作:对 UIView 的 subLayer(非主 Layer)属性进行更改,
系统将自动进行动画生 成,动画持续时间的缺省值似乎是 0.5 秒。

坐标系统:CALayer 的坐标系统比 UIView 多了一个 anchorPoint 属性,
使用 CGPoint 结构 表示,值域是 0~1,是个比例值。

渲染:当更新层,改变不能立即显示在屏幕上。当所有的层都准备好时,
可以调用 setNeedsDisplay 方法来重绘显示。

变换:要在一个层中添加一个 3D 或仿射变换,可以分别设置层的 transform
或 affineTransform 属性。
变形:Quartz Core 的渲染能力,使二维图像可以被自由操纵,
就好像是三维的。图像可以在一个三维坐标系中以任意角度被旋转,
缩放和倾斜。CATransform3D 的一套方法􏰀供了一 些魔术般的变换效果。


132020 iOS面试题—— layoutSubViews & drawRects

142020 iOS面试题——UDID & UUID
152020 iOS面试题—— CPU & GPU

区别:

CUP和GPU之所以大不相同,是由于其设计目的的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的类型数据,同时又要逻辑判断又会引入大量的分支跳转和中断处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断纯净的计算环境。

关于绘图和动画有两种处理方法:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备中,都有可以运行不同软件的可编程芯片,但是由于历史原因,我们可以说CPU所做的工作都在软件层面,而GPU在硬件层面。

总的来说,我们可以用软件(使用CPU)做任何事情,但是对于图像处理,通常用硬件会更快,因为GPU使用图像对高度并行浮点运算做了优化。由于这些原因,我们想尽可能把屏幕渲染的工作交给硬件去处理。问题在于GPU并没有无限制处理性能,而且一旦资源用完的话,性能就会开始下降了(即使CPU并没有完全占用)

大多数动画性能优化都是关于智能利用GPU和CPU,使得它们都不会超出负荷。于是我们首先需要知道Core Animation是如何在两个处理器之间分配工作的。

162020 iOS面试题—— 点(pt) &像素(px)

172020 iOS面试题——属性与成员变量

182020 iOS面试题——intNSInteger的区别

192020 iOS面试题——类和对象

202020 iOS面试题—— category & extension

212020 iOS面试题—— Foundation

1>字符串比较

NSString *a = @“hello”;

NSString *b = [NSString stringWithFormat:@hello”];

if (a == b){ nslog(@“a==b”); }

if ([a isEqualToString: b]){

nslog(@“a isEqualToString b”); }

==比较变量中保存的数值(地址)速度快内容同,可能地址不同(常量区,堆 区)

isEqualTo比较字符串非常耗时

(2) 字符串截取

截取字符串"20 | http://www.baidu.com"中,字符前面和后面的数据,分别 输出它们。

NSString * str = @"20 | [http://www.baidu.com](http://www.baidu.com)";

NSArray *array = [str componentsSeparatedByString:@"|"]; //这是 分别输出的截取后的字符串

for (int i = 0; i<[array count]; ++i) { NSLog(@"%d=%@",i,[array objectAtIndex:i]);

(3) 格式

<p>NSString *str1 = [NSString stringWithFormat:@<q>a</q>b”];

//报错,a”后加b非法<br/>

NSString *str2 = [NSString stringWithFormat:@“a"<q>b”];

//显示 ab<br/>

NSString *str3 = [NSString stringWithFormat:@"a\v/q>b"]; //显 示 a"b 反斜杠转义</p>

222020 iOS面试题——NSArrayNSDictionary

1.for(NSString object in [testDic allValues])
2.for(id akey in [testDic allKeys]){
[sum appendString:[testDic objectForKey:akey]]; }
3.[testDic enumerateKeysAndObjectsUsingBlock:dkey,idobj,BOOLstop) {
[sum appendString:obj]; } ];
速度:对于数组,增强for最快,普通for和block速度差不多,增强最快是因为增 强for语法会对容器里的元素的内存地址建立缓冲,遍历的时候直接从缓冲 中取元素地址而不是通过调用方法来获取,所以效率高.这也是使用增强for 时不能在循环体中修改容器元素的原因之一(可以在循环体中添加标记,在 循环体外修改元素)
对于字典,allValues最快,alKe y和block差不多,原因是allKe y需要做 objcetForKey 的方法
(2)NSValue NSNumber
1>归档视图尺寸,坐标
(3)其它
nil Nil n ull NSNull 的区别
(4)如何避免循环引用
两个对象相互强引用,都无法release,解决办法为一个使用stro ng,—个 使用 assign (weak)


需要更多iOS面试文集资料,加iOS技术交流群:196800191,群文件直接获取

群内资料分享
学习书籍
面试宝典

232020 iOS面试题——CFSocket使用有哪几个步骤

242020 iOS面试题—— Core Foundation中提供了哪几种操作Socket的 方法?

252020 iOS面试题—— 解析XML文件有哪几种方式?

262020 iOS面试题—— 什么是沙盒模型?哪些操作是属于私有api范畴?

272020 iOS面试题—— 在一个对象的方法里面:selfname= “object”****;name =”object”有什么不同吗?

282020 iOS面试题—— 请简要说明 viewDidLoadviewDidUnload 何时 调用

292020 iOS面试题—— 创建控制器、视图的方式

302020 iOS面试题——简述内存分区情况

312020 iOS面试题—— 队列和栈有什么区别

322020 iOS面试题—— iOS的系统架构

332020 iOS面试题—— 控件主要响应3种事件

342020 iOS面试题——xib文件的构成分为哪3个图标?都具有什么功能

352020 iOS面试题—— 简述视图控件器的生命周期

362020 iOS面试题——app项目的生命周期

各个程序运行状态时代理的回调: -(BOOL)application:(UIApplication)application willFinishLaunchingWithOptions:(NSDictionary)launchOptions* 告诉代理进 程启动但还没进入状态保存

-(BOOL)application:(UIApplication)application

didFi nishLau nchi ngWithOptio ns:(NSDictio nary *)la un chOptio ns 告诉代理启 动基本完成程序准备开始运行

-(void)applicationWillResignActive:(UIApplication *)application 当应用程序 将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来 电话了

-(void)applicationDidBecomeActive:(UIApplication *)application 当应用程序 入活动状态执行,这个刚好跟上面那个方法相反

-(void)applicationDidEnterBackground:(UIApplication *)application 当程序 被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面 设置即可

-(void)applicationWillEnterForeground:(UIApplication *)application 当程序从 后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。

-(void)applicationWillTerminate:(UIApplication *)application 当程序将要退出 是被调用,通常是用来保存数据和一些退出前的清理工作。

(2) 简要说明一下 APP 的启动过程, main 文件说起, main 函数中有什么 函数?作用是什么?

app完整的启动过程 main方法的作用

打开程序 > 执行main函数 >UIAPPlicationMain函数 > 初始

化UIAPPlicationMain函数(设置代理,开启事件循环) > 监听系统事件

—>程序结束

先执行main函数,main内部会调用UIApplicationMain函数

(3) UIApplicationMain 函数作用

⑴、根据传入的第三个参数创建UIApplicati on对象或它的子类对象。如果 该参数为nil,直接使用该UIApplication来创建。(该参数只能传人 UIApplicatio n或者是它的子类)

⑵、根据传入的第四个参数创建AppDelegate对象,并将该对象赋值给第1 步创建的UIApplicatio n对象的delegate属性。

⑶、开启一个事件循环,循环监控应用程序发生的事件。每监听到对应的系 统事件时,就会通知AppDelegate。

(4) main函数作用*

⑴创建UIApplicatio n对象

(2) 创建应用程序代理

(3) 开启时间循环,包括应用程序的循环运行,并开始处理用户事件。


372020 iOS面试题——动画有基本类型有哪几种;表视图有哪几种基本 样式。

382020 iOS面试题—— 实现简单的表格显示需要设置UlTableView的什么 属性、实现什么协议?

392020 iOS面试题—— Cocoa Touch提供了哪几种Core Animation过渡 类型?
过渡动画通过 type 设置不同的动画效果, CATransition 有多种过渡效果, 但其实 Apple 官方的SDK只提供了四种:

fade 淡出 默认
moveIn 覆盖原图
push 推出
reveal 底部显示出来
但私有API提供了其他很多非常炫的过渡动画,如 cube(立方旋转)、suckEffect(吸走)、oglFlip(水平翻转 沿y轴)、 rippleEffect(滴水效果)、pageCurl(卷曲翻页 向上翻页)、pageUnCurl(卷曲翻页 向下翻页)、cameraIrisHollowOpen(相机开启)、cameraIrisHollowClose(相机关闭)等。

注: 因 Apple 不提供维护,并且有可能造成你的app审核不通过, 所以不建议开发者们使用这些私有API.


402020 iOS面试题—— UIViewCLayer有什么区别?

1).UIView是OS系统中界面元素的基础,所有的界面元素都是继承自
它。它本身完全是由CoreA nimation来实现的。它真正的绘图部分,是由 一个CALayer类来管理。UIView本身更像是一个CALayer的管理器,访 问它的跟绘图和跟坐标有关的属性。
2).UIView有个重要属性layer ,可以返回它的主CALayer实例。
3).UIView的CALayer类似UIView的子View树形结构,也可以向它的 layer上添加子layer ,来完成某些特殊的表示。即CALayer层是可以嵌套 的。
4).UIView的layer树形在系统内部,被维护着三份copy。分别是逻辑
树,这里是代码可以操纵的;动画树,是一个中间层,系统就在这一层上 更改属性,进行各种渲染操作;显示树,其内容就是当前正被显示在屏幕 上得内容。
5).动画的运作:对UIView的subLayer (非主Layer )属性进行更改,系 统将自动进行动画生成,动画持续时间的缺省值似乎是0.5秒。
6).坐标系统:CALayer的坐标系统比UIView多了一个anchorPoint属
性,使用C GPoi nt结构表示,值域是0〜1,是个比例值。这个点是各种图 形变换的坐标原点,同时会更改layer的positio n的位置,它的缺省值是 {0.5,0.5},即在 layer 的中央。
7).渲染:当更新层,改变不能立即显示在屏幕上。当所有的层都准备好 时,可以调用setNeedsDisplay方法来重绘显示。
8).变换:要在一个层中添加一个3D或仿射变换,可以分别设置层的 tran sform 或 affi neTra nsform 属性。
9).变形:Quartz Core的渲染能力,使二维图像可以被自由操纵,就好像 是三维的。图像可以在一个三维坐标系中以任意角度被旋转,缩放和倾 斜。CATransform3D的一套方法提供了一些魔术般的变换效果。


412020 iOS面试题——Quatrz 2D的绘图功能的三个核心概念是什么并简

答:上下文:主要用于描述图形写入哪里;
路径:是在图层上绘制的内容;
状态:用于保存配置变换的值、填充和轮廓,alpha值等。


422020 iOS面试题—— iPhone OS主要提供了几种播放音频的方法?

答:SystemSound Services
AVAudioPlayer 类
Audio Queue Services
OpenAL


432020 iOS面试题—— 使用AVAudioPlayer类调用哪个框架、使用步骤?

答:AVFoundation .framework
步骤:配置AVAudioPlayer对象;
实现AVAudioPlayer类的委托方法;
控制AVAudioPlayer类的对象;
监控音量水平;
回放进度和拖拽播放。


442020 iOS面试题—— 有哪几种手势通知方法、写清楚方法名?

答:

-(void)touchesBegan:(NSSet)touchedwithEvent:(UIEvent)event;

-(void)touchesMoved:(NSSet)touched withEvent:(UIEvent)event;

-(void)touchesEnded:(NSSet)touchedwithEvent:(UIEvent)event;

-(void)touchesCanceled:(NSSet)touchedwithEvent:(UIEvent)event;

-(void)touchesBegan:(NSSet)touchedwithEvent:(UIEvent)event;

-(void)touchesMoved:(NSSet)touched withEvent:(UIEvent)event;

-(void)touchesCanceled:(NSSet)touchedwithEvent:(UIEvent)event;

452020 iOS面试题—— ViewControllerdidReceiveMemoryWarning怎 么被调用

答:[super didReceiveMemoryWar nin g];
当程序接到内存警告时View Controller将会收到这个消息:didReceiveMemoryWarning

1、当程序收到内存警告时候ViewController会调用didReceiveMemoryWarning这个方法。

2、调用了这个方法之后,对view进行释放并且调用viewDidUnload方法

3、从iOS3.0开始,不需要重载这个函数,把释放内存的代码放到viewDidUnload中去。


462020 iOS面试题—— 什么时候用delegate,什么时候用N otification?

答:delegate针对on e-to-o ne关系,用于se nder接受到recieve啲某个功能反 馈值。
no tificati on 针对on e-to-on e/ma ny/non e,reciver,用于通知多个 o bject 某个事 件。
大家都知道delegate和notification都是为了在不同的对象之间传递数据,下面简单介绍一下两者:

delegate针对one-to-one关系,并且reciever可以返回值给sender,nofication可以针对one-to-one/amny/noe,reciever无法返回值给sender.所以,delegate用于sender希望接收到reciever某个功能反馈值,nofication用于通知多个object某个事件。

那么何时该使用delegate,何时该使用notification呢?

1.参数的不同
使用delegate参数更加直观,使用notification参数不那么直观,所以能使用delegate的地方,尽量使用delegate
2.传递的长度
有时候你的页面会一次跳好几个页面,那么你想把这个页面的数据传回到底层是很麻烦的事情,因为你要把delegate指针从底层界面一直传上来。
3.传递多个数据
当你在同一个对象传递给多个对象,用delegate就不可行了。


472020 iOS面试题—— 用预处理指令#define声明一个常数,用以表明1年 中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

我在这想看到几件事情:

define语法的基本知识(例如:不能以分号结束,括号的使用,等

等)
懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算
—年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L, 告诉编译器这个常数是的长整型数。
如果你在你的表达式中用到UL (表示无符号长整型),那么你有了一个好 的起点。记住,第一印象很重要。


482020 iOS面试题—— 写一个”标准"宏MIN ,这个宏输入两个参数并返回 较小的一个。
# define MIN(A,B)   (A) <= (B) ? (A) : (B))
# define MIN(A,B)   (A) <= (B) ? (A) : (B))

这个测试是为下面的目的而设的:
标识#defi ne在宏中应用的基本知识。这是很重要的,因为直到嵌入(in li ne) 操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方 法,
对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方 法。
三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器 能产生比if-the n-else更优化的代码,了解这个用法是很重要的。
懂得在宏中小心地把参数用括号括起来
我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生 什么事?
least = MIN(p++, b);
least = MIN(p++, b);
结果是:
((p++) <= (b) ? (p++) : (p++))
((p++) <= (b) ? (p++) : (p++))
这个表达式会产生副作用,指针p会作三次++自增操作。


492020 iOS面试题——关键字const有什么含意?修饰类呢?static的作用, 用于类呢?还有extern c的作用

502020 iOS面试题——关键字volatile有什么含意?并给出三个不同的例 子

512020 iOS面试题—— 一个参数既可以是const还可以是volatile吗?一 个指针可以是volatile吗?

522020 iOS面试题—— static关键字的作用

532020 iOS面试题—— 列举几种进程的同步机制,并比较其优缺点。

542020 iOS面试题——进程之间通信的途径

552020 iOS面试题—— 进程死锁的原因

562020 iOS面试题——死锁的4个必要条件

572020 iOS面试题—— 死锁的处理

582020 iOS面试题——cocoa touch框架

答:iPhone OS应用程序的基础Cocoa Touch框架重用了许多Mac系统 的成熟模式,但是它更多地专注于触摸的接口和优化。
UIKit为您提供了在iPho ne OS上实现图形,事件驱动程序的基本工具, 其建立在和Mac OS X中一样的Fou ndation框架上,包括文件处理,网 络,字符串操作等。
Cocoa Touch具有和iPho ne用户接口一致的特殊设计。有了 UIKit,您可 以使用iPho ne OS上的独特的图形接口控件,按钮,以及全屏视图的功 能,您还可以使用加速仪和多点触摸手势来控制您的应用。
各色俱全的框架除了UIKit夕卜,Cocoa Touch包含了创建世界一流iPhone 应用程序需要的所有框架,从三维图形,到专业音效,甚至提供设备访问 API以控制摄像头,或通过GPS获知当前位置。
Cocoa Touch既包含只需要几行代码就可以完成全部任务的强大的 Objective-C框架,也在需要时提供基础的C语言API来直接访问系统。 这些框架包括:
Core An imation :通过Core An imati on,您就可以通过一个基于组合独立 图层的简单的编程模型来创建丰富的用户体验。
Core Audio: Core Audio是播放,处理和录制音频的专业技术,能够轻松 为您的应用程序添加强大的音频功能。
Core Data:提供了一个面向对象的数据管理解决方案,它易于使用和理 解,甚至可处理任何应用或大或小的数据模型。
功能列表:框架分类
下面是Cocoa Touch中一小部分可用的框架:
音频和视频:Core Audio , OpenAL , Media Library , AV Foundation
数据管理:Core Data , SQLite
图形和动画:Core Animation , OpenGL ES , Quartz 2D
网络:Bonjour , WebKit , BSD Sockets
用户应用:Address Book , Core Location , Map Kit , Store Kit


592020 iOS面试题—— 自动释放池是什么,如何工作

602020 iOS面试题—— sprintf,strcpy,memcpy使用上有什么要注意的地 方

612020 iOS面试题—— 你了解svn,cvs等版本控制工具么?

622020 iOS面试题—— 什么是push

632020 iOS面试题—— 静态链接库

642020 iOS面试题—— 0C三大特性

1>本质

〃以下代码有什么问题

self.name = name;

}

return self.name;

}

点语法的本质是调用类的getter方法和setter方法,如果类中没有getter方 法和setter方法就不能使用点语法。

(2) 继承

1>如何实现多重继承

消息转发

forwardingTargetForSelector methodSignatureForSelector forwardInvocation delegate 和 protocol

类别

http://www.cocoachina.com/ios/20130528/6295.html

⑶多态

1>什么是多态

多态:不同对象以自己的方式响应相同的消息的能力叫做多态。

由于每个类都属于该类的名字空间,这使得多态称为可能。类定义中的名 字和类定义外的名字并不会冲突。类的实例变量和类方法有如下特点: •和C语言中结构体中的数据成员一样,类的实例变量也位于该类独有的 名字空间。

•类方法也同样位于该类独有的名字空间。与C语言中的方法名不同,类 的方法名并不是一个全局符号。一个类中的方法名不会和其他类中同样的 方法名冲突。两个完全不同的类可以实现同一个方法。

方法名是对象接口的一部分。对象收到的消息的名字就是调用的方法的名 字。因为不同的对象可以有同名的方法,所以对象必须能理解消息的含 义。同样的消息发给不同的对象,导致的操作并不相同。

多态的主要好处就是简化了编程接口。它容许在类和类之间重用一些习惯 性的命名,而不用为每一个新加的函数命名一个新名字。这样,编程接口 就是一些抽象的行为的集合,从而和实现接口的类区分开来。

Objective-C支持方法名的多态,但不支持参数和操作符的多态。


652020 iOS面试题——0C中如何实现多态

662020 iOS面试题——Objective-C的优缺点

672020 iOS面试题—— 对于0C,你认为最大的优点和最大的不足是什么? 对于不足之处,现在有没有可用的方法绕过这些不足来 实现需求。如果可以话,有没有考虑或者实现过重新实 现0C的功能,如果有,具体怎么做?

682020 iOS面试题—— oc中可修改和不可以修改类型

692020 iOS面试题—— 我们说的oc是动态运行时语言是什么意思?

702020 iOS面试题—— 通知和协议的不同之处?

1.通知:
通知需要有一个通知中心:NSNotificationCenter,自定义通知的话需要给一个名字,然后监听。
优点:通知的发送者和接受者都不需要知道对方。可以指定接收通知的具体方法。通知名可以是任何字符串。
缺点:较键值观察(KVO)需要多点代码,在删掉前必须移除监听者。
2.协议
通过setDelegate来设置代理对象,最典型的例子是常用的TableView.
优点:支持它的类有详尽和具体信息。
缺点:该类必须支持委托。某一时间只能有一个委托连接到某一对象。


712020 iOS面试题—— 什么是推送消息?

722020 iOS面试题—— 关于多态性

答:多态,子类指针可以赋值给父类。
这个题目其实可以出到一切面向对象语言中,因此关于多态,继承和封装 基本最好都有个自我意识的理解,也并非一定要把书上资料上写的能背出 来。


732020 iOS面试题—— 什么是谓词?

742020 iOS面试题—— 做过的项目是否涉及网络访问功能,使用什么对象 完成网络功能?

752020 iOS面试题—— 简单介绍下N SURLConnection类及 +sendSynchronousRequest:returningResponse:error: 与-initWithRequest:delegate :两个方法的应别?

762020 iOS面试题——谈谈Object-C的内存管理方式及过程?

+答: (1).当你使用n ew,alloc和copy方法创建一个对象时,该对象的保留计数器 值为1.当你不再使用该对象时,你要负责向该对象发送一条release或 autorelease消息.这样,该对象将在使用寿命结束时被销毁.
(2).当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为 1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清 理.如果你打算在一段时间内拥有该对象,则需要保留它并确保在操作完成 时释放它.
(3).如果你保留了某个对象,你需要(最终)释放或自动释放该对象.必须保持 reta in方法和release方法的使用次数相等.


772020 iOS面试题—— Object-C有私有方法吗?私有变量呢?

782020 iOS面试题——说说响应链

792020 iOS面试题——时间传递&响应者链 事件的产生和传递过程:

802020 iOS面试题—— framebounds有什么不同?

812020 iOS面试题—— 方法和选择器有何不同?

822020 iOS面试题—— OC的垃圾回收机制?

832020 iOS面试题—— 什么是延迟加载?

842020 iOS面试题—— 是否在一个视图控制器中嵌入两个tableview控制 器?

852020 iOS面试题——一个tableView是否可以关联两个不同的数据源? 你会怎么处理?
>>>>UITableView 需要关联不同的数据源来回切换,自定义cell,导致数据重叠?怎么结决?

862020 iOS面试题—— 什么时候使用NSMutableArray,什么时候使用 NSArray?
>>>>关于NSMutableArray线程安全的思考和实现

872020 iOS面试题——给出委托方法的实例,并且说出UlTableVlew的Data Source方法

最后欢迎加入我的iOS交流圈资料获取:
分享内容包括逆向安防、算法、架构设计、多线程,网络进阶,还有底层、音视频、Flutter等等......
+裙:196800191或者是+ WX(XiAZHiGardenia)免费获取! 获取面试资料 一起交流技术

> 若有不准确的地方,欢迎评论指出。同时若是有好的题目或者文章也希望大家可以再评论区分享讨论,小编会时刻关注大家的评论及时精选和顶置的哦~共同学习,互相勉励!

同时也感谢各位看官踊跃发言~

上一篇 下一篇

猜你喜欢

热点阅读