首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2020年6月最新iOS面试题总结(答案篇)

[1240] 之前发了这篇iOS面试总结(2020年6月),没想到挺受大家欢迎,本来是没打算为它写答案,但有几个人建议我最好出一篇答案,提的人多了我就答应了下来。...这个可以参考我之前写的一篇文章iOS开发图片格式选择 中的前半部分内容。 5、什么是离屏渲染,什么情况会导致离屏渲染?...,它的作用就是用于标记当前自动释放池需要释放内部对象时,释放到那个地方结束,每次入栈时它用于确定添加的位置,然后再次移动到栈顶。...也提供对象分配统计以及主动分配的内存地址历史 3、讲一下你做过的性能优化的事情。 这个根据自己情况来说吧。 4、如何检测卡顿,都有哪些方法?...2、OClint实现静态分析的原理是什么,它是如何做到的? 具体可以参考我之前写的如何通过静态分析提高iOS代码质量。 3、MVVM和MVC有什么区别?

9.2K41

【实践操作】 在iOS11中使用Core ML 和TensorFlow对手势进行智能识别

这篇文章将带领你实现在你自己的应用中使用深度学习来识别复杂的手势,比如心形、复选标记或移动设备上的笑脸。我还将介绍和使用苹果的Core ML框架(iOS11中的新框架)。 ?...在本教程结束时,我们将有一个设置,让我们可以选择完全自定义的手势,并在iOS应用中非常准确地识别它们。 1.一个APP收集每个手势的一些例子(画一些复选标记或者心形,等等)。...机器学习模型可能是复杂的,(尤其是在移动设备上)评估是非常缓慢的。在iOS 11中,苹果引入了Core ML,这是一种新的框架,使其快速并易于实现。...为机器学习算法生成数据 项目的自述文件解释了如何修改手势类的集合,包括复选标记、x标记、“涂鸦”(在上下移动时快速的侧向运动)、圆形、U形、心形、加号、问号、大写A、大写B、笑脸和悲伤的表情。...训练神经网络 如果你在训练中退出了train.py,你可以稍后重新启动,它将加载checkpoint文件以获取它所处的位置,它还可以选择从哪里加载模型以及保存它的位置。

2.7K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个 Bug 引发的思考(超赞的文章)

    我们在使用过程中应该如何选择? WGS84——gps 坐标 WGS84 是为 GPS 全球定位系统使用而建立的坐标系统,最基础的坐标系。...5、webapp 定位 本次项目的定位流程如下: ReliableCookieLocation 获取定位信息 通过之前定位留下的 cookie 信息直接获取定位信息,快速精准的完成定位的过程,否则走之后的定位流程...6、移动端定位技术 获取 cookie 信息直接定位 cookie 在定位中显得十分重要,这个 cookie 信息会直接屏蔽掉定位能力而直接获取定位信息,既快速又精确。...h5 定位在 ios 只支持 https 协议;同时部分低端 android 手机性能问题,定位时长设定太短的时候,没有来得及获取数据。...我们在组合定位的时候最好在每个定位技术里进行埋点或者做标记,这样就更容易帮助我们去统计各个定位方法的成功率和失败率,基于这些数据进行优化定位策略,也可以帮助我们快速去定位失败问题。

    1.5K80

    最新iOS设计规范二|7大应用架构

    使用全屏模式视图获取沉浸式内容(例如视频,照片或相机视图),或者使用受益于全屏演示的复杂任务(例如标记文档或编辑照片)。...一些APP会结合多种导航样式,例如:使用平级导航的应用可以在每个类别中使用分层导航。 导航设计规范如下: 始终提供清晰明确的路径。用户应该知道他们在APP中的位置以及如何到达下一个目的地。...设计一种能快速、轻松地获取内容的信息结构。为你的APP设计一个信息架构,在这个架构中,只需要最少的点击、最少的滑动和最少的页面数量便可以访问相应内容。 使用手势操作让页面切换更流畅。...例如:用户喜欢系统自动获取自己的实际位置去标记照片或寻找附近的朋友,但他们仍然希望可以选择关闭这些功能。 在APP需要用到时才向用户请求个人数据。...如果很明显您的应用程序依赖于其个人信息进行操作,那么用户将不会对此请求感到困扰。 没有必要时不要请求位置信息。在获得位置位置信息之前,检查系统以查看是否已启用位置服务。

    2.6K20

    地图SDK示例中心全新上线,还有一大波功能升级…

    “想实现一个微信发送位置这个看似简单的场景,开发起来好像还挺复杂?” “之前没用过地图SDK,但是上线时间紧迫,如何快速搞定地图功能?”...为了降低开发者对地图SDK的学习成本,帮助开发者快速掌握技术要点,腾讯位置服务最近上线了地图SDK示例中心。 示例种类丰富多样。首期发布安卓和iOS两端各10多种示例,覆盖大部分常见地图开发场景。...地图SDK重要功能升级 地图SDK适配iOS14 为适配iOS14系统新增的精确定位和模糊定位特性,提供两种不同的定位标展示效果。...诚邀各位开发者登录腾讯位置服务官网体验我们的示例中心,并且下载使用最新版本的地图SDK(Android版或iOS版) 如果在使用体验中遇到任何问题,可以随时向我们反馈: 1、在腾讯位置服务官网提交工单,...系统会将您的问题分配给专业的技术支持进行解答。

    90011

    iOS界面渲染流程分析

    ~ 在最近的面试中,我发现一道面试题,其考点是:围绕iOS App中一个视图从添加到完全渲染,在这个过程中,iOS系统都做了什么?...但是在图片绘制到屏幕上之前,必须把它扩展成完整的未解压的尺寸(通常等同于图片宽 x 长 x 4个字节)。为了节省内存,iOS通常直到真正绘制的时候才去解码图片。...---- IPC内部通信(进程间通信) 在研究这个问题的过程中,我有想过去看一下源码,试着去理解在视图完全渲染之前,IPC是如何调度的,可惜苹果并没有开源绘制过程中的代码。...这里推荐官方文章给大家了解一下iOS中IPC是如何运作的。...我的做法是尽量快速、提前判断当前绘制任务是否已经被取消;在绘制每一行文本前,我都会调用 isCancelled() 来进行判断,保证被取消的任务能及时退出,不至于影响后续操作。

    2.6K20

    经验之道:最有效的 iOS 内存泄漏检测

    iOS设备性能越来越好,iOS App 也相应的变得越来越庞大,App代码的量级也在快速的增长,开发一个小的模块在工程中调试变的越来越难,通常我们是通过观察Allocation的内存变化高低,或者内存分配快照对比来寻找泄漏的情况...通过过去参与过的复杂大型的iOS项目开发经验,开发新的模块的时候,总结出了一套完整的iOS内存自测的方法,通过Instruments来逐步跟踪检测我们创建和主动销毁的对象是否真的销毁了。...在演示之前,需要强调一件事情就是,以文件夹目录作为你的空间命名很重要,请遵循开发新模块的时候使用你的模块的命名作为前缀。...首先,我先上图,看一下我的命名组织结构,遵循的就是模块化的命名,因为手Q的跨部门合作,所以用部门标记作为前缀。...[image.jpg] 然后我就需要操作模拟器来进入我所开发的功能模块,会看到非常复杂的对象分配情况,所以这一步非常关键,我只需要在搜索框搜索模块的前缀就可以只显示当前模块所涉及的对象分配与销毁情况,

    9.4K1013

    深入分析macOS CVE-2019-8507漏洞

    下面给出的是Windows Server进程在遇到问题时的程序崩溃日志: 0x02 PoC概念验证 接下来,我将演示如何使用我们的PoC来触发该漏洞。...当我们获取到了连接ID之后,我们就可以在特质的Mach消息中偏移量0x2C的位置设置这个值了。最后,我们只需要发送这个Mach消息就可以触发该漏洞了。...conn_id的值可以通过在PoC代码的第86行设置断点来获取。...开始于偏移量0x70000907dd52处的缓冲区数据为一个图片对象(绿色高亮标记): 下面的代码段可以用来解析CA::Render::Decoder::decode_object函数中的图片对象数据:...接下来,我们看看其他的数据集是如何处理的。 我们可以看到变量v2等于0x02它可以给缓冲区分配一个8字节大小的区域。

    80420

    教你轻松修改React Native端口

    pull request,所以说在2017年8月1之前的React Native版本是没有这个功能的。...第二步:修改iOS项目的端口号 在修改了React Native 服务的端口号之后,我们要需改iOS项目的端口号让它从新端口获取jsbundle,否则的话会出现No bundle URL present...关于如何为不同项目分配端口号,查看上文 修改React Native监听端口 的教程即可。...另外也可以关注我的新浪微博@CrazyCodeBoy,或者关注我的Github来获取更多有关React Native开发的技术干货。...如果,大家在开发原生模块中遇到问题可以在本文的下方进行留言,我看到了后会及时回复的哦。 另外也可以关注我的新浪微博,或者关注我的Github来获取更多有关React Native开发的技术干货。

    3.1K40

    深入理解 Golang 垃圾回收机制

    其中垃圾收集器是这个领域的关键部分。了解 Go 如何分配和释放内存可以让我们编写更好、更高效的应用程序。 为了更好地理解垃圾收集器的工作原理,我决定在实时应用程序上跟踪它的低级行为。...触发率 标记和清理辅助工作 深入前的几件事 在深入研究之前,让我们快速了解一下 uprobes、垃圾收集器的设计以及我们将使用的演示应用程序。 为什么要 uprobe?...接下来,我探索了一些用于内存分配、标记和扫描的辅助函数,以获取下一级信息。 这些辅助函数有参数或返回值,可以帮助我们更好地可视化正在发生的事情(例如分配的内存页)。...CPU、内存和其他因素中的触发比率因素会生成此数字。 让我们看看当我们一次分配大量内存时,垃圾收集器的触发率是如何变化的。我们可以通过跟踪函数来获取触发率 gcSetTriggerRatio。...在之前的标记阶段图中,我们可以看到它同时 gcDrainN 执行了大约 300,000 个标记工作(只是分散了一点)。 总结 还有很多关于 Go 中的内存分配和垃圾收集的知识!

    39810

    听GPT 讲Go源代码--mbitmap.go

    总的来说,objIndex 函数的作用就是帮助垃圾回收器更方便地管理内存。它能够计算出每个对象在位图中的位置,这样就可以更快速地判断一个对象是否被引用了,从而更好地调度垃圾回收器的工作。...总的来说,该函数以及类型 _typeBits 是实现垃圾回收机制的重要组成部分,可以快速访问位标记所在的字节,并设置或获取位标记的值。...(heap bitmap是一个位图,每个位记录对应的内存块是否被分配) 标记所有已经使用的内存块,以便在堆上分配内存时,能够快速找到可用的内存块。...具体来说,该函数的参数addr是一个指针,它指向一个区域的起始位置,length是区域的大小。该函数首先会根据addr计算出该地址所在的页的地址,并获取该页的位图。...dumpGCProg dumpGCProg函数是用于打印GC程序的函数。GC程序是指在垃圾回收过程中解释的指令。它们告诉GC运行时哪些对象需要收集,如何扫描它们,以及如何回收空间。

    22720

    系统服务化构建-两方OAuth

    现在通用的 OAuth 协议是 OAuth2.0,是一个互联网开放授权协议,用于规范资源服务器,客户端应用,授权服务器三者的职责,实现客户端应用在不直接获取到普通用户的用户名和密码的前提下,访问用户的私有资源...而如今逐渐演变成使用 Token 的方式标记客户端身份,存储用户状态信息,至于 Token 如何生成,在 HTTP 协议中如何传输,并没有过多硬性要求。...“APP_KEY 和 APP_SERCRET 的分配和管理是实现两方 OAuth 的第一步 读到这里,或许你有疑问了,上文说到的不同 APP,无非是安卓,iOS,WebView,我们何不定义不同的枚举来标明不同的客户端...“1 PC,2 安卓 3 iOS 4 微信 这样的分类可以解决吗,答案是很难。...这个问题的缘由是我发现有些工程师,退出功能是这么做的,页面跳转,清除本地 Token。 Token 代表的是用户状态,这种状态代表的是客户端与服务端的一种关联关系,退出功能是切断这种关联。

    59510

    Telegram-iOS 第 2 部分的源代码演练:SSignalKit

    状态无法逆转 putNext 只要用户未终止,就向关闭发送新数据next putError 向关闭发送错误并标记已终止的订阅者error putCompletion 调用关闭并标记已终止的订阅者。...iOS 强制应用在访问设备上的敏感信息如: contacts, camera, location, 等. 之前请求用户授权。在与朋友聊天时,电报 iOS 具有将您的位置作为消息发送的功能。...让我们看看它如何获得位置授权与信号。 工作流程是一个标准的异步任务,可以由 SwiftSignalKit 建模。authorizationStatus 访问....操作员持有延迟 0.3 秒的请求。对于快速键入,先前的未请求将因第 4 步中的设置而取消。...对于电报工程师如何保持代码质量和轻松调试信号, 这对我来说仍然是一个神话。

    2.2K20

    iOS 9人机界面指南(三):iOS 技术 (上)

    系统会自动安排图标在快速操作列表中的位置是在左侧或者在右侧,这依赖于你的应用的图标在用户主屏幕的位置。(摒除图标在列表中的位置,在自左向右的语言中文字总是左对齐。)...从iOS 9开始,相机(Camera)应用可以捕捉附加的内容(拍照之前和结束后的声音和额外的画面)为传统的、静止的图片增加生活气息。 ?...如果你使用系统提供的标记,应该把它放在每个LivePhoto上同样的位置。标记可以放在一个不会影响用户查看照片的角落。...确保在你的应用中采用一致的方式添加标记,这样可以让用户依靠它去识别LivePhoto。iOS有两种方式提供标记: 覆盖。这种覆盖的方式包含一个阴影,适合覆盖在照片上 纯色。...这种纯色的方式(无阴影)可以被用来创建一个可调色的图片模板 iOS也提供了很多纯色标记,其中,图片上一个删除线代表现在的LivePhoto被当做是一个传统的照片 在用户下载一个Live Photo的时候给他们一个好的体验

    1.7K60

    我是这样从零开始用深度学习做狗脸识别 iOS App 的

    我该如何给数据贴上标签?如何去训练数据呢?一个好的最小可行开发工作流程又是怎什么样? 第一个目标是让一些程序运行起来。以后我可以再去做一些提升质量方面的工作。俗话说在你跑之前先得学会走。...我每小时至少可以标记 300 张照片。即每 12 秒就可以标记一个图像。标记 8000 张照片只需要 26 小时。如果你想标记数据的真实数量,那么每一秒都很重要。...建立我自己的标记集有一定的前期成本,但实际上帮助了你之后的工作。 手工标记数据可以让你很好地了解模型的内容。 预处理图像最初看起来像是一个细节,但后来证明是很关键的,我花了几天时间来理解如何修改它。...运行一次得等待24小时是很常见的,这并不是真正的快速迭代。 数据扩充是可能会出错的代码。开始的时候可以略过这一部分,运行的时候可以不运行这一部分代码,然后一点点增加数据扩充部分的代码。...结果中百分之七十是在正确的位置,百分之三十出现在了错误的位置。这给我把过滤器应用在脸部识别上造成了困难。 备用计划:构建二维的过滤器。

    1.3K20

    深入浅出iOS内存管理-技术创作101训练营

    *** 面试题(OC内存) OC如何对内存管理的,说说你的看法和解决方法? iOS 是如何管理内存的? 讲一下你对 iOS 内存管理的理解? 介绍下内存的几大区域?...简答(OC内存) 在iOS中,使用引用计数来管理OC对象的内存。在iOS 5之前是MRC(手动管理引用计数),iOS 5推出了ARC(自动管理引用计数)。...分配的内存空间地址越来越小,由编译器来进行管理。 堆:通过alloc、malloc、calloc等动态分配的空间,分配的内存空间地址越来越大,由开发者进行管理。...简答(ARC 强/弱引用) 我是15年开始入坑iOS开发的,从Xcode 5学起,当时大多数项目还都是MRC项目,其中最有名的还数ASIHTTPRequest库,MRC下需要手动进行引用计数管理,不乏就要写大量的...因此,对象可以找到它需要的任何信息运行时,例如另一个对象在继承层次结构中的位置,其他对象符合的协议,以及它可以响应消息执行的方法实现的位置。

    1.3K54

    汇编寄存器的规则

    了解汇编如何工作以及特定架构的调用约定如何工作是一项极其重要的技能。它可以让您观察没有源代码的函数参数,并允许您修改传入函数的参数。...但是,它们位于 CPU 本身上,因此 CPU 的这些部分可以快速访问这些寄存器。...从调试的角度来看,这也很有用,因为您可以快速直观地验证 -[UILabel setText:] 在 SpringBoard 应用程序中的执行位置,并运行断点条件以查找设置特定 UILabel 文本的确切代码行...我经常发现,即使在我确实有源代码的应用程序中,使用此方法也更快,然后在应用程序中看到数千个 IBAction。 ... 但仅出于演示目的,让我们将其应用于 iOS Maps 应用程序。...我对右上方按钮的名称和接收者感到好奇,该按钮可以直接定位用户的具体位置。

    2.6K50

    Java垃圾收集器总结

    Shenandoah做的一些工作给简化了;我感觉这是降维打击了 如何判断对象可回收 引用计数算法 概述 对象添加一个引用计数器,当有地方使用计数器就+1; 引用时效计数器-1,当计数器为零说明对象不可能被使用...基本就是老年代)进行分配担保; HotSpot算法细节 OopMap 主流Java虚拟机使用准确式垃圾收集,用户线程停顿下来的时候并不需要一个不漏的检查所有执行上下文和全局的引用位置,应该有办法直接得到哪些地方存放对象引用的...,并不需要GC Roots开始查找 安全点 有了OopMap,可以快速准确完成GC Roots枚举,但是引用关系可能发生变化;如果OopMap记录所有变换,那么空间成本会很高昂; HotSpot是选择在特定位置生成安全点...(染色指针), 通过标记位可以快速的确认对象的三色标记状态,是否重分配,是否只能通过finalize访问这些信息; 对于GC这个过程,只要知道这些信息就够了,所以与之前的GC相比,就不需要先获取引用再获取引用对应的信息...; 对应,因为压缩了对象的地址空间,所以ZGC管理的内存不可以超过4TB(这个我目前碰到大数据对内存使用比较大,也不过就128G…) ZGC的三个优势: Region能够更快速的释放和重用, 大幅度减少垃圾收集中内存屏障的使用

    45700
    领券