21.OC中什么是ARC?Objective-C的内存管理机制是什么?ARC即Automatic Refrence Counting,它是Objective-C的内存管理机制。就是在代码中自动加入了retain/release,原先需要手动添加用于管理内存的引用计数的代码可以由编译器自动完成。ARC的使用是为了解决对象retain和release匹配的问题。以前因手动管理而造成内存泄漏或者重复释放
 1、 问题:什么是RunLoop?答:RunLoop是通过内部维护的事件循环来对事件/消息进行管理的一个对象。1、没有消息需要处理时,休眠以避免资源占有。2、有消息需要处理时,立刻被唤醒————————————————————问题:main函数为什么能保证一直运行状态不退出?答:在main函数中调用UIApplicationMain()函数, 这个函数内部会启动一个主线程的RunLoo
RunLoop: 1.       实际上 RunLoop 就是一个函数,其内部是一个 do-while 循环。当你调用 CFRunLoopRun() 时,线程就会一直停留在这个循环里;直到超时或被手动停止,该函数才会返回。 2.       作用:通过 Ru
8.RunLoop什么是RunLoop?(RunLoop的实现机制?剖析RunLoop的源码)数据结构  (Mode/Source/Timer/Observer )事件循环机制(RunLoop有事做事,没事休息是由事件循环机制来维护的)RunLoop与NSTimer之间的关系是怎样的?(我们在使用NSTimer的时候,应该怎样考虑和RunLoop的关系,包括RunLoop所带来的影响)R
开篇iOS面试中,runLoop,runtime,内存管理,性能优化等更底层更的问题越来越受面试官的青睐,这确实是考察一个程序员知识深度和自主钻研能力的基本手段。虽然大多数程序员在开发过程中,这些知识点用的并不多,但是掌握这些知识,会帮助你写出更优秀的代码,避免一些“莫名其妙”的坑。想成为一名真正优秀的工程师,确实应该在相应的领域不断深挖,才能到达大多数到不了的高度。 此篇讲讲面试中runLoo
转载 2023-09-08 10:40:02
42阅读
1. 什么是runtime 运行时刻是指一个程序在运行(或者在被执行)的状态。也就是说,当你打开一个程序使它在电脑上运行的时候,那个程序就是处于运行时刻。在一些编程语言中,把某些可以重用的程序或者实例打包或者重建成为"运行库"。这些实例可以在它们运行的时候被连接或者被任何程序调用。 程序员有时候会在什么东西应该在编译的时候加载进来以及什么东西该在运
转载 2024-06-12 14:54:42
63阅读
1.NSRunloop基本概念@Run loops 是线程相关的基础框架的一部分.一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件.@线程的生命周期存在五个状态:新建,就绪,运行,阻塞,死亡@NSRunLoop可以保持一个线程一直为活动状态,不会马上被销毁掉,在多线程中,子线程就不会被销毁2.NSRunloop常用方法 + (NSRunLoop *)currentR
转载 2024-10-09 20:55:27
34阅读
面试 题  1、BLOCK如果要在block内修改block外声明的栈变量,那么一定要对该变量加__block标记block引起了实例与block之间的循环引用(retain-cycle),并且给出解决方案:不直接使用self而先将self赋值给一个临时变量,然后再使用这个临时变量。但是,大家注意,我们一定要为这个临时变量增加__block标记2、线程1.1 iOS有三种多线程编程的技术
第一篇面试题整理:://cocoachina.com/bbs/read.php?tid-459620.html 本篇面试题同样:如答案有问题,欢迎指正! 1.回答person的retainCount值,并解释为什么Person * per = [[Person alloc] init];self.person = per; 2 2.这段代码有
转载 2023-06-05 20:48:17
312阅读
 问:1. 谈谈你对自动释放池的理解2.自动释放池在mrc 和 arc 下的区别3.多层自动释放池嵌套的对象在哪一层释放。  一、 释放时机 简介:自动释放池是oc提供的一种自动回收的机制,具有延迟释放的特性,即当我们创建了一个对象,并把他加入到了自动释放池中时,他不会立即被释放,会等到一次runloop结束或者作用域超出{}或者超出[pool release]之后再
今天刚刚开始面试,接下来这几天把遇到的面试题总结如下:1.内存管理在实际开发中的应用(必考,已经被问两次了)答: 1.UITableView的数据条数太多时会消耗内存,可以给UITableViewCell、UICollectionViewCell、UITableViewHeaderFooterView设置正确的复用ID,充分复用。2.有透明度的View(alpha值在0到1之间),opaque的值
目录2020 阿里、字节iOS面试题之Runtime相关问题1 2020 阿里、字节iOS面试题之Runtime相关问题2 runtime相关问题之 内存管理基本内容包括:weak的实现原理?SideTable的结构是什么样的关联对象的应用?系统如何实现关联对象的关联对象的如何进行内存管理的?关联对象如何实现weak属性Autoreleasepool的原理?所使用的的数据结构是什么ARC的实现原理
前言:经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便iOS开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案。 1.?你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?答案:Objecitve-C的重
1、什么时候在 block 中不需要使用 weakSelf 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: 那么请问:什么时候在 block 里面用 self,不需要使用 weak self? 答案如下: 当
转载 2016-12-05 14:02:00
258阅读
2评论
面试能力要求:精通iphone的UI开发,能熟练操作复杂表视图,熟练使用图层技术, 可以自定义UI控件,使用类别扩展系统控件功能;   擅长通讯技术,熟悉各种通信协议,精通xml, json, 二进制或其他形式的自定义解析,能架设服务器实现客户端与服务器的通讯以提交开发效率;  熟练掌握各种数据存储技术,如core data, sqlite,  对象序
原创 2013-08-04 19:55:00
409阅读
都是一些值得一做,必须掌握的题。 1.写一个NSString类的实现+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t ch
作者丨_小迷糊前言随着移动互联网科技不断的发展和创新,如今无论是公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,而面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。下面我们一起来一下看看吧。一、如何绘制UIView?绘制一个UIView最灵活的方法就是由它自己完成绘制。实际上你不是绘制一个UIView,而是子类化一个UIView并赋予绘制自己的能力。当一个UIView需
转载 2024-05-15 01:42:19
146阅读
1.看你在重构一个项目,你讲讲你重构的心得?你如何保证你重构后的功能逻辑是完整的?你如何让以后来维护你重构的代码的人能清晰明了的知道你写了什么?2.进程和线程的区别?同一进程不同线程的哪些数据段是共享的?3.http响应header中的cache-control有哪些常规值?4.http中get/post在请求参数上有什么区别?get参数的长度有限制吗?文件上传一般是post请求,那么在body里
iOS面试题 1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 浅层复制:指向对象的指针,而不复制引用对象本身。深层复制:复制引用对象本身。 2.What is advantage of categories? What is difference between implementing a category ...
转载 2021-09-01 14:31:08
168阅读
续写iOS 面试题及答案20道1~20(一)iOS 面试题及答案20道21~40(二)41.谈谈对OC和Swift动态特性的理解runtime其实就是OC的动态机制。runtime执行的是编译后的代码,这时它可以动态加载对象、添加方法、修改属性、传递信息等。具体过程是,在OC中,对像调用方法时,如[self.tableview reload],经历了两个过程。编译阶段: 编译器会将OC代码翻译成o
  • 1
  • 2
  • 3
  • 4
  • 5