![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
文章平均质量分 84
iOS大鑫
这个作者很懒,什么都没留下…
展开
-
一篇走心的iOS代码规范!
前言关于代码规范的重要性这里不做过多解释,能看到这篇文章说明你已经开始重视代码规范了(代码规范看起来是在限制你的自由和发挥,其实它是在间接的帮助你变得更优秀。)。适当的代码规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,进而提高工作效率,降低沟通成本。代码的字里行间流淌着的是软件和程序员的血液,质量的提升是尽可能少踩坑、杜绝踩重复的坑,切实提升系统稳定性,码出质量根据约束力度,暂时把规范约定为2个等级,分别是 必须 和 建议。(一)命名规范1.原创 2021-08-13 15:52:50 · 467 阅读 · 0 评论 -
iOS开发高仿抖音,上下切换、横竖屏播放!
好久没写文章了,最近有点时间,模仿了一个抖音视频上下滑动切换播放功能,顾记录下实现方案,共勉。一、先说下大致思路:1.UITableView : Cell上展示视频第一帧图片,点赞,评论,头像等参数2.封装一个视频播放View3.定义一个属性currentIndex,并添加他的观察属性,当currentIndex属性值改变时,处理视频播放功能4.UITableView滑动代理,处理视频上下滑动动画操作5.注意,整个UITableView中,只存在一个视频播放实例方法,这样性能提升直播功能的界.原创 2021-07-23 14:42:20 · 2939 阅读 · 5 评论 -
iOS项目入口的演变过程(2021)
UISceneDelegate是什么,它和AppDelegate有什么关系,Swift中的@main又是什么,本文将带你一一了解。这篇文章将主要讲解下面几点内容:iOS13之前的AppDelegate启动项目的流程UISceneDelegate的多窗口实现逻辑UISceneDelegate和AppDelegate的关系int main()和@main单Window的AppDelegate在iOS13之前iPhone上的项目都是单windows的,AppDelegate中的- (BOOL)原创 2021-07-22 15:15:48 · 2697 阅读 · 0 评论 -
手把手带你撸一个网易云音乐首页(下篇)
前言Hello, 大家好,今天准备和大家继续分享如何利用 Swift 来实现一个网易云音乐的首页;上篇文章发布以后,我收获了不少小伙伴的关注与点赞,同时也得到了一些非常有用的建议,在这里再次感谢大家的认可, 你们的鼓励与建议是我技术输出路上最大的动力。MVVM好了,回到正题,在项目中我们使用了 MVVM 模式,在上一篇文章中,我们讲完了 Model 和 ViewModel, 那接下来就开始讲 View 吧!如果有小伙伴是从这篇文章进入的,不妨先从我的上一篇文章看起,这样看下来才能保证你思路的连贯性。原创 2021-07-20 14:52:04 · 512 阅读 · 1 评论 -
手把手带你撸一个网易云音乐首页(上篇)
前言Hello,大家好,近期我一直在学习用 Swift 编码,由于之前很多项目我都是用 OC 实现的,所以导致我现在对 Swift 还是处于一个学习的阶段中。为了提高自己的学习效率,每次我都会为自己定下一个短期的目标,就那这次来说吧,为了加快自己上手 Swift, 我为自己定下了的目标就是完成一个 Swift 版本的网易云音乐 App。不知道大家在学习一门新语言的时候,是如何提高学习效率的?不妨在评论区与大家交流一下。调研分析先分析一下 iOS 端网易云音乐 App 的首页,如图所示:看完后,首原创 2021-07-19 16:05:26 · 809 阅读 · 2 评论 -
Swift模式参考!
模式代表了单值或组合值的结构。例如,元组(1,2) 的结构是用逗号分隔两个元素的列表。因为模式代表一种值的结构,而不是一个任何一个特殊的值,你可以用多种值与之匹配。举个例子,模式 (x,y) 可以匹配元组 (1,2) 以及其他任何两个元素的元组。除了将一个值与模式匹配,你还可以提取组合值的部分或全部,然后把各部分绑定到常量或变量上。在 Swift 中,模式出现在变量和常量的声明中(在它们的左边),在 for-in 语句和 s原创 2021-07-15 13:40:44 · 185 阅读 · 1 评论 -
Swift表达式参考!
在Swift中,一共有四种表达法:前缀表达,二分表达,简单表达,和后缀表达。Evaluating an expression returns a value, causes a side effect, or both.前缀表达和二分表达可用来在简短语句中使用运算符。简单表达从概念上讲是获取值的最简单方式。后缀表达和前缀表达和二分表达相似,都可以让你建立更为复杂的表达方式;例如函数调用和成员获取等。我们将在本章节中详细解释每种表达方式。GRAMMAR OF AN EXPRESSIONexpress原创 2021-07-08 14:15:26 · 193 阅读 · 2 评论 -
Swift类型参考!
Swift 语言存在两种类型:命名型类型和复合型类型。命名型类型是指定义时可以给定名字的类型。命名型类型包括类、结构体、枚举和协议。比如,一个用户定义的类MyClass的实例拥有类型MyClass。除了用户定义的命名型类型,Swift 标准库也定义了很多常用的命名型类型,包括那些表示数组、字典和可选值的类型。那些通常被其它语言认为是基本或初级的数据型类型(Data types)——比如表示数字、字符和字符串——实际上就是命名型类型,Swift 标准库是使用结构体定义和实现它们的。因为它们是命名型类型,因原创 2021-07-07 16:30:16 · 339 阅读 · 0 评论 -
iOS逆向之对称算法(下)
本文主要是对称算法的终端演示+代码演示OpenSSL终端演示下面主要采用DES、AES和 ECB、CBC两两组合的方式进行演示,涉及的终端命令主要有以下一些加密AES + ECB加密“hello”字符串echo -n hello | openssl enc -aes-128-ecb -K 616263 -nosalt | base64AES + CBC加密“hello”字符串echo -n hello | openssl enc -aes-128-cbc -iv 0102030原创 2021-05-15 14:00:34 · 198 阅读 · 5 评论 -
新时代iOS开发学习路线,预测未来不被淘汰!
前言这里是大鑫,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,利用网络记录下自己的学习历程。本文阅读建议1.一定要辩证的看待本文.2.本文主要是本人对iOS开发经验中总结的知识点3.本文所有观点仅代表本人.4.本文只阐述学习路线和学习当中的重点问题.需要读者自己使用百度进行拓展学习.5.本文所表达观点并不是最终观点,还会更新,因为本人还在学习过程中,有什么遗漏或错误还望各位指出.6.觉得哪里不妥请在评论留下建议~7.觉得还行的话就点.原创 2021-04-15 14:13:15 · 532 阅读 · 0 评论 -
最新整理:iOS面试题-面试常问问题(一)
前言:最近把 iOS 面试中可能会遇到的问题整理了一番, 题目大部分是网上收录的, 方便自己巩固复习, 也分享给大家; 希望对大家有所帮助!对于答案,不一定都合适,欢迎大家积极讨论;整理不易,如果您觉得还不错,麻烦在文末 “点个赞” ,或者留下您的评论“Mark” 一下,谢谢您的支持iOS面试题-面试常问问题(一)1. #include、#import、@class的区别?在C 语言中, 我们使用 #include 来引入头文件,如果需要防止重复导入需要使用#ifndef...#defin.原创 2021-04-12 13:34:59 · 360 阅读 · 0 评论 -
iOS开发者们,请您们面向未来学习,效率学习!
这一篇文章,如果你是一名iOS开发正好也处于开发晋升瓶颈迷茫期,不妨停下你的脚步,花五分钟看看,兴许有你需要的!文章结尾有????彩蛋????一位五年iOS开发的焦虑有一个小伙伴跟我微信电话。接通,那边传来非常有礼貌的:大神好!紧接着就开始一连串的"轰炸":iOS现在到底怎么了?5年开发经验了竟然在金九银十拿不到几个面试邀请,更别提offer现在要不要转行,感觉现在是大前端时代.现在30出头了,是不是不太合适继续做程序员!全程电话里充满了这位小伙伴对iOS行情的焦虑,在原创 2021-04-10 14:18:07 · 228 阅读 · 0 评论 -
给iOS中高级求职者的一份面试题解答!
前段时间更新了一篇 给iOS中高级面试官的一份招聘要求收到很多小伙伴的点赞与关注。可能有很多小伙伴已经带着我在那篇文章给大家提供的一些面试技巧 & 其中的面试题 已经开始招聘或者应聘了!这里应大家要求,对里面的面试题提供相关答案!相信无论是面试官还是求职者都是有所收获的~~PS:篇幅有点长,大家可以关注或者点赞收藏以备不时之需!!!作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流群:130595548,不管你是小白还是大牛都欢迎入驻 ,让我们一起进步,共.原创 2021-04-09 15:08:58 · 564 阅读 · 0 评论 -
给iOS中高级面试官的一份招聘要求!
互联网招聘高潮已经来临!相信作为面试官的你,估计开始准备招聘要求或者已经在招聘了!这一篇文章主要想和各位面试官交流一下:我们应该制定一份什么样的招聘要求,才是比较合适的?(* ̄︶ ̄)iOS面试需要注意1:面试态度我们在招聘的时候,面试官经常会犯一个问题:各种碾压求职者!我不知道你招聘这一天发生了什么事情,心情好不好?但是我希望当你去面试的求职者的时候,保持愉悦,给予面试者应该的 – 善意!你面试代表你的公司,你的言行举止都直接影响外界对贵公司的感受同时作为一个管理者的你,成功和愉悦的面原创 2021-04-08 15:27:49 · 274 阅读 · 5 评论 -
SwiftUI - 百行代码变十行,Swift再创辉煌
苹果开发者大会 WWDC 2019 在北京开幕。在这场大会上除了「史上最难看 Mac 主机」、首次出现的iPadOS以外,我们还终于可以对饱受诟病的iTunes说再见了。而对于开发者来说,新发布的 SwiftUI 可能是最吸引人的特性,在 苹果公司软件工程高级副总裁Craig Federighi的演示中,我们可以轻松地把一百行的前端代码缩减到十几行。作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流群:130595548,不管你是小白还是大牛都欢迎入驻 ,让我们一起..原创 2021-04-08 13:36:37 · 169 阅读 · 0 评论 -
iOS开发你不知道的事——Crash分析!
大家平时在开发过程中,经常会遇到Crash,那也是在正常不过的事,但是作为一个优秀的iOS开发人员,必将这些用户不良体验降到最低。线下Crash,我们直接可以调试,结合stack信息,不难定位!线上Crash当然也有一些信息,毕竟苹果爸爸的产品还是做得非常不错的!通过iPhone的Crash log也可以分析一些,但是这个是需要用户配合的,因为需要用户在手机 中 设置-> 诊断与用量->勾选 自动发送 ,然后在xcode中 Window->Organizer->Cras.原创 2021-04-07 13:51:23 · 298 阅读 · 0 评论 -
iOS开发你不知道的事-编译&链接!
对于平常的应用程序开发,我们很少需要关注编译和链接过程。我们平常Xcode开发就是集成的的开发环境(IDE),这样的IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并在一起的过程称为构建,即使使用命令行来编译一个源代码文件,简单的一句gcc hello.c命令就包含了非常复杂的过程!正是因为集成开发环境的强大,很多系统软件的运行机制与机理被掩盖,其程序的很多莫名其妙的错误让我们无所适从,面对程序运行时种种性能瓶颈我们束手无策。我们看到的是这些问题的现象,但是却很难看清本质,所有这些问题的原创 2021-04-06 14:01:38 · 278 阅读 · 0 评论 -
多线程安全-iOS开发要注意咯!
多线程,作为实现软件并发执行的一个重要的方法,也开始具有越来越重要的地位!作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流群:130595548,不管你是小白还是大牛都欢迎入驻 ,让我们一起进步,共同发展!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)正式因为多线程能够在时间片里被CPU快速切换,造就了以下优势资源利用率更好程序设计在某些情况下更简单程序响应更快但是并不是非常完美,因为多线程常常伴有资源抢夺的问题,原创 2021-04-05 16:22:17 · 153 阅读 · 0 评论 -
面试专题—iOS内存不够怎么办?底层原理
在早期的计算机中,程序是直接运行在物理内存上的,也就是说:程序在运行时访问的地址就是物理地址。这样也就是单运行的时候没有什么问题!可是,计算机会有多到程序、分时系统和多任务,当我们能够同时运行多个程序时,CPU的利用率将会比较高。那么有一个非常严重的问题:如何将计算机的有限的物理内存分配给多个程序使用假设我们计算有128MB内存,程序A需要10MB,程序B需要100MB,程序C需要20MB。如果我们需要同时运行程序A和B,那么比较直接的做法是将内存的前10MB分配给程序A,10MB~110MB分配给B.原创 2021-04-05 13:43:08 · 163 阅读 · 0 评论 -
最新iOS开发常见面试题总结二!(附答案)!
#1.iOS线程与进程的区别和联系?进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些.原创 2021-04-01 13:35:54 · 203 阅读 · 0 评论 -
最新iOS开发常见面试题总结一!(附答案)
1.iOS 类(class)和结构体(struct)有什么区别?Swift 中,类是引用类型,结构体是值类型。值类型在传递和赋值时将进行复制,而引用类型则只会使用引用对象的一个"指向"。所以他们两者之间的区别就是两个类型的区别。举个简单的例子,代码如下class Temperature { var value: Float = 37.0}class Person { var temp: Temperature? func sick() { temp?.value = 41.原创 2021-03-31 14:13:06 · 1258 阅读 · 0 评论 -
iOS面试备战-网络篇
计算机网络是计算机科学与技术专业的必修课,也是移动端,前端,后端都会涉及并用到的知识点,可想而知它的重要性。所以它也成为了iOS面试中经常被问及的问题。准备面试的话,网络相关的知识点一定不能错过。这里总结了一些我认为有用的和最近面试遇到的网络相关知识点。首先作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:130 595 548,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!计算机网络是如何分层的网络有两种分层转载 2021-03-30 14:06:13 · 281 阅读 · 0 评论 -
iOS发开之如何成为一名高手?
先简单介绍一下,我是湖南浏阳人,2010年毕业,就职于腾讯、百度,参与过腾讯开心鼠英语,百度地图,百度CarLife开发,2011年起,iOS4.0,iPhone3GS。首先作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:130 595 548,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!iOS开发高手 = ?我所理解的iOS开发高手#武林高手=普通武者+绝招iOS高手=iOS普通开发+绝招iOS高手原创 2021-03-29 15:23:36 · 638 阅读 · 0 评论 -
iOS程序员——6年开发个人笔记,送给还在迷茫的你!
前言:本文主要与大家分享我业余时间如何学习多门技术以及开发业余项目的一些心得,分为 初衷、硬技能、软技能、第一生产力、环境、时间几个部分,阅读大概需要 10 分钟。业余开发项目的初衷总体来说,在我的感觉里,国内的环境对于业余开发者来说其实是非常不友好的,不过作为一个开发者,一味抱怨并不会有大的改观,能做的就是不忘初心,多做尝试多做积累。包括我之前也和一些朋友深入聊过类似的话题,例如“在行”上约我聊相关话题的同学,我其实是鼓励大家勇敢的去做自由职业者或者业余开发者,虽然环境的确不是很友好,但是年轻时多转载 2021-03-28 13:22:55 · 212 阅读 · 0 评论 -
iOS面试题,性能优化篇!
1.形成tableView卡顿的缘由有哪些?1.最经常使用的就是cell的重用, 注册重用标识符若是不重用cell时,每当一个cell显示到屏幕上时,就会从新建立一个新的cellhtml若是有不少数据的时候,就会堆积不少cell。ios若是重用cell,为cell建立一个ID,每当须要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,若是没有再从新建立cellc++2.避免cell的从新布局cell的布局填充等操做 比较耗时,通常建立时就布局好面试如能够将cell单独放到原创 2021-03-27 22:25:32 · 304 阅读 · 0 评论 -
2021年面试:整理出一份高级iOS面试题!
1、NSArray与NSSet的区别?NSArray内存中存储地址连续,而NSSet不连续NSSet效率高,内部使用hash查找;NSArray查找需要遍历NSSet通过anyObject访问元素,NSArray通过下标访问2、NSHashTable与NSMapTable?NSHashTable是NSSet的通用版本,对元素弱引用,可变类型;可以在访问成员时copyNSMapTable是NSDictionary的通用版本,对元素弱引用,可变类型;可以在访问成员时copy(注:NSHas原创 2021-03-27 14:01:53 · 360 阅读 · 0 评论 -
12个iOS技术面试题及答案总结
这篇文章给大家总结了在iOS面试的时候可能会遇到的12个技术面试题,以及这些面试题但答案,这些答案只是给大家一些参考,大家可以再结合自己理解进行回答,有需要的朋友们下面来一起看看吧。前言随着移动互联网科技不断的发展和创新,如今无论是公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,而面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。下面我们一起来一下看看吧。一、如何绘制UIView?绘制一个UIView最灵活的方法就是由它自己完成绘制。实际上你不是绘制一个UIView,而是转载 2021-03-26 14:06:06 · 800 阅读 · 0 评论 -
服务器集群技术的特点和功能
服务器集群技术 的特点和功能 高可应用性与可扩展性 1.高可应用性 对于一些实时性很强的应用系统,必须保持服务的24小时不间断运行,而由于软件、硬件、网络和人为等各种原因,单一服务运行环境很难达到这种要求,此时构服务器集群技术的特点和功能高可应用性与可扩展性1.高可应用性对于一些实时性很强的应用系统,必须保持服务的24小时不间断运行,而由于软件、硬件、网络和人为等各种原因,单一服务运行环境很难达到这种要求,此时构建一个服务器集群系统是个不错的选择。构建集群的一个的优点是集群具有高可用性,在服务出.原创 2021-03-26 13:50:27 · 725 阅读 · 1 评论 -
Windows Server 2003服务器集群技术 (完整版)
本文介绍如何利用Windows Server 2003软件来搭建服务器集群。集群为资源和应用程序提供高可用性、故障恢复、可伸缩性和可管理性。 1、Microsoft Windows 2003集群介绍 服务器群集是一组协同工作并运行Microsoft群集服务(Microsoft Cluster Ser本文介绍如何利用Windows Server 2003软件来搭建服务器集群。集群为资源和应用程序提供高可用性、故障恢复、可伸缩性和可管理性。1、Microsoft Windows 2003集群介绍服务器.转载 2021-03-25 15:04:50 · 1072 阅读 · 0 评论 -
iOS开发中音频工具类的封装以及音乐播放器的细节控制
这篇文章主要介绍了iOS开发中音频工具类的封装以及音乐播放器的细节控制,代码基于传统的Objective-C,需要的朋友可以参考下一、控制器间数据传递两个控制器之间数据的传递第一种方法:代码如下:self.parentViewController.music=self.music[indexPath.row];不能满足第二种做法:把整个数组传递给它第三种做法:设置一个数据源,设置播放控制器的数据源是这个控制器。self.parentViewController.dataSource=s.转载 2021-03-25 14:27:02 · 299 阅读 · 0 评论 -
过去的一年iOS面试总结
去年随着疫情的到来,我也失业了。一边忙着抵抗病毒,一边还得继续准备面试。又该准备“造火箭”了,去了继续“拧螺丝”,下面是自己最近的一些总结,也会在后面的面试中,遇到的面试问题,也一并记录一下。如有编写有问题,可以留言。不可避免的有错别字,望见谅!如果您也是个面试者,碰到面问题,可以留言、私信交流一下。如果你还想看其他面试题,可以移步到2017年面试题1.ARC帮我们做了什么?使用LVVM + Runtime 结合帮我管理对象的生命周期LVVM 帮我们在代码合适的地方添加release、retar转载 2021-03-24 15:03:06 · 152 阅读 · 0 评论 -
iOS开发-私有库
私有库可以说是现在iOS开发必备的一个技能了,接下来我会用CocoaPods来完成私有库相关操作的整个流程。了解私有库整个流程之前,先来了解一些前导知识。一些概念Reporepository的缩写,翻译为资料库,也叫它资源库。通过命令pod repo list可以查看本地的资源库。如下:当我们使用pod search [PODNAME]时,就会在本地的资料库进行库的搜索。有一点需要注意的就是,如果你本地的库的版本较老,这个时候,你搜索到的版本也会比较老,可以使用pod repo update [转载 2021-03-18 15:11:46 · 180 阅读 · 0 评论 -
阿里、字节:一套高效的iOS面试题
简述runtime相关问题runtime是iOS开发最核心的知识了,如果下面的问题都解决了,那么对runtime的理解已经很深了。 runtime已经开源了,这有一份别人调试好可运行的源码objc-runtime,也可以去官网找objc4结构模型介绍下runtime的内存模型(isa、对象、类、metaclass、结构体的存储信息等)为什么要设计metaclassclass_copyIvarList & class_copyPropertyList区别class_rw_t 和 cla转载 2021-03-18 13:41:45 · 187 阅读 · 0 评论 -
iOS 开发面试通关指南:67 个必知问题!
我们都知道,面试可能会让人感到压力山大——不管你是第一次参加面试的新手,还是已经有几年开发经验做背书的业内人士,面试都会带来压力。作为一名面试者,你必须好好准备,以展现出自己最好的一面,而想要在一场1小时左右的谈话中做到这一点是很困难的。作为开发人员,我们通常不情愿去用心学习文档,甚至很多简单的东西还需要临时去Google搜索。这没关系,没人会要求我们记住一切知识点……但如果是面试的话那就不一样了。作为一名面试官,面试可能也不是那么简单的。你想为公司招募一个非常适合你们团队的人,但你没有太多时间去了解对转载 2021-03-17 15:48:48 · 162 阅读 · 0 评论 -
iOS面试中经常问的点 - RunTime
一. RunTime简介RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数,如果调用未实现的函数就会报错。 对于OC语言,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错。二. RunTime消息机制消息机制是运行时里面最重要的机制,OC中任何方法的调用,本转载 2021-03-17 13:37:23 · 365 阅读 · 0 评论 -
iOS底层面试题---OC语法部分
面试题的答案都是抛砖引玉,具体细节还得深入了解iOS底层原理1、一个NSObject对象占用多少内存?系统分配了16个字节给NSObject对象(通过malloc_size函数获得)但NSObject对象内部只使用了8个字节的空间(64bit环境下,可以通过class_getInstanceSize函数获得)2、对象的isa指针指向哪里?instance对象的isa指向class对象class对象的isa指向meta-class对象meta-class对象的isa指向基类的meta-cl转载 2021-03-16 15:48:28 · 174 阅读 · 0 评论 -
【iOS面试粮食】UI视图—iOS事件的传递机制
iOS的事件分为3大类型Touch Events(触摸事件)Motion Events(运动事件,比如重力感应和摇一摇等)Remote Events(远程事件,比如用耳机上得按键来控制手机)在开发中,最常用到的就是Touch Events(触摸事件),基本贯穿于每个App中,也是本文的猪脚~ 因此文中所说事件均特指触摸事件。接下来,记录、涉及的问题大致包括:事件是怎么找它的妈妈的?(寻找事件的最佳响应者)事件又是如何去到妈妈的身边的?妈妈又将如何对待它?(事件的响应及在响应链中的传递)转载 2021-03-16 13:37:32 · 205 阅读 · 0 评论 -
iOS 面试题总结
isa指针:在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有 isa 指针。isa 是一个Class 类型的指针。 每个实例对象有个 isa 的指针,他指向对象的类,而Class里也有个 isa 的指针, 指向 meteClass (元类)。元类保存了类方法的列表。当类方法被调用时,先会从本身查找类方法的实现,如果没有,元类会向他父类查找该方法。同时注意的是:转载 2021-03-15 15:53:10 · 123 阅读 · 0 评论 -
iOS底层面试总结
我们经常会看一些面试题,但是好多面试题我们都是知其然不知其所以然,你如果认真的看了我上面总结的几十篇文章,那么你也会知其所以然。OC对象本质1、一个NSObject对象占用多少内存?系统分配了16个字节给NSObject对象(通过malloc_size函数获得),但NSObject对象内部只使用了8个字节的空间(64bit环境下,可以通过class_getInstanceSize函数获得)2、对象的isa指针指向哪里?instance对象的isa指向class对象class对象的isa指向..转载 2021-03-15 13:56:38 · 192 阅读 · 0 评论 -
iOS面试,简述性能优化
在性能优化中一个最具参考价值的属性是FPS:Frames Per Second,其实就是屏幕刷新率,苹果的iphone推荐的刷新率是60Hz,也就是说GPU每秒钟刷新屏幕60次,这每刷新一次就是一帧frame,FPS也就是每秒钟刷新多少帧画面。静止不变的页面FPS值是0,这个值是没有参考意义的,只有当页面在执行动画或者滑动的时候,FPS值才具有参考价值,FPS值的大小体现了页面的流畅程度高低,当低于45的时候卡顿会比较明显。图层混合:每一个layer是一个纹理,所有的纹理都以某种方式堆叠在彼此的顶部。对转载 2021-03-11 13:35:53 · 184 阅读 · 0 评论