自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 大厂2021年,最新整理iOS面试题!

标题前言最新收集了前两个月的iOS面试题总结,答案这块,就不细说了,毕竟有的题目也是拿不准,如果有不明白的,大家一起留言评论探讨,大家一起努力!标题网络模块:1、http 的发展历史 以及https的相对于http的加密过程2、分别说一下tcp 和 udp 以及他们的区别和联系;3、http的超时默认从什么位置开始计算4、http使用udp还是tcp链接以及每次发送一个http请求 就一定建立tcp链接吗 为什么5、tcp三次握手链接 四次断开链接 问:tcp存在四次握手链接吗 以及tcp存在

2021-07-23 15:18:30 242

原创 带你手把手撸一个网易云音乐首页(上篇)

标题前言Hello,大家好,近期我一直在学习用 Swift 编码,由于之前很多项目我都是用 OC 实现的,所以导致我现在对 Swift 还是处于一个学习的阶段中。为了提高自己的学习效率,每次我都会为自己定下一个短期的目标,就那这次来说吧,为了加快自己上手 Swift, 我为自己定下了的目标就是完成一个 Swift 版本的网易云音乐 App。不知道大家在学习一门新语言的时候,是如何提高学习效率的?不妨在评论区与大家交流一下。标题调研分析先分析一下 iOS 端网易云音乐 App 的首页,如图所示:看

2021-07-22 15:02:44 598

转载 关于ios13升级到ios14企业APP出现无法安装解决方案

声明:此方案适用于app ios13 下载OK,但是ios14 下载同样资源就提示安装失败!在iOS14更新完了之后我们公司app 出现了无法安装的问题, 同一个plist文件,13能安装,14就提示无法安装,明天就开始推ios14了,所以就显得很急,下面记录下我们的解决方案:我们没有是用apple store方式下载,我们用的plist文件的方式下载, 在网上也百度了很多,看到一个这样的帖子在iOS14上苹果对于自身提供的解决方案中ats的要求更加严格,之前我们通过itms协议安装应用时只要pli

2021-07-19 16:13:58 4662

原创 2021iOS最新面试总结

关于面试题打个比方,如果把找工作理解成考大学,面试就是高考,市面上的“真题”就是模拟试卷。我们会很容易倾向于在面试前寻找对应公司的面试“真题”,重点准备,期待“押题”成功。但实际上,即使面试同一家公司,它会有不同部门,不同业务线,不同面试官,即使遇到同一面试官,他也不一定就每次考察完全一样的内容。想想高考中那些考的好的同学,他们肯定不是靠“押题”才能取得好成绩吧,他们大多靠的是平常积累及对知识点灵活掌握,那面试也一样啊。执着于搜题,把面试题当做重点进行“复习”,还不如自己划出“考纲”,各个知识点逐一检查掌

2021-07-17 15:12:22 301

转载 2021最新iOS面试题总结(一)

今天刚刚开始面试,接下来这几天把遇到的面试题总结如下:1.内存管理在实际开发中的应用(必考,已经被问两次了)答:1.UITableView的数据条数太多时会消耗内存,可以给UITableViewCell、UICollectionViewCell、UITableViewHeaderFooterView设置正确的复用ID,充分复用。2.有透明度的View(alpha值在0到1之间),opaque的值应该设置为YES,可以优化渲染系统、提高性能。(当alpha值为0或1时,opaque的值对性能没有影响

2021-07-16 16:46:36 496

转载 iOS面试了20几家总结出来的面试题

标题iOS面试题本面试题为个人使用版本,如后续流传出去,请转发的朋友务必注释一下,答案正确性有待商榷,本人的答案不代表权威,仅仅是个人理解。 文章内部有写混乱,将就着看吧。另外大部分图片加载不出来,,MARKDown格式也不太统一(各平台不一样),由于博主太懒不想改,不过不影响最终效果。标题更新日志2020年08月17日 更新了第23条的新的引申,关于NSTimer循环引用的根本原因, 以及优化方案标题一、硬技术篇1.对象方法和类方法的区别?对象方法能个访问成员变量。类方法中不能直接调用

2021-07-15 19:50:35 848

原创 iOC开发的基础语言是什么

听说是一个什么面向对象的C的,那是什么语言啊,java基础的人能学吗?iOS开发的基础语言是objective-c,有Java基础学起来更加轻松。iOS开发使用的语言是objective-c(也称object-c),是基于C++的。iOS开发的标准语言是objective-c。是c的一种超集, 它是对c的扩展,支持面向对象编程。像后来的一些高级语言java,c#等都借鉴了该语言的面向对象特性。 当然在iOS开发过程中,也支持c/c++语言与原生的objective-c混编。**扩展资料:## **

2021-07-06 14:57:31 143

转载 iOS面试题基础

iOS面试题基础分类、扩展、代理、通知、KVC、KVO、属性关键字一、分类(Category)**1、分类的作用?声明私有方法,分解体积大的类文件*2、分类的特点?可以为系统类添加分类。在运行时时期,将 Category 中的实例方法列表、协议列表、属性列表添加到主类中后(所有Category中的方法在方法列表中的位置是在主类的同名方法之前的),然后会递归调用所有类的 load 方法,这一切都是在main函数之前执行的。*3、分类可以添加哪些内容?实例方法,类方法,属性(添加gette

2021-07-05 13:34:07 117

原创 移动开发—ios系列:AFNetworking请求XML

前言:http协定是服务器与客户端交换数据最常见的形式。一般来说,数据格式是JSON,也有XML的状况。JSON格局都会解析,如何解析XML呢?—— 本文是基于AFNetworking3.2.1版本参考资料:https://stackoverflow.com/que…https://stackoverflow.com/que…划重点一般来说,咱们进行HTTP申请,会实例化一个AFHTTPSessionManager对象,并设置一些属性:manager = [AFHTTPSessionMana

2021-06-04 13:48:26 189

原创 iOS系列—wakeup in XNU

苹果在iOS13的时候,在内核中退出了一个新的性能掂量指标wakeup,同时因为这个指标而被零碎杀死的利用不可胜数,其中也包含咱们罕用的微信淘宝等。而这个指标齐全是由 XNU 内核统计的,所以咱们很难通过日志等一般伎俩去精确的定位问题,所以这里通过另一种思路去解决这个问题。为什么要统计 wakeup要定位这个问题,首先咱们须要晓得这个指标的目标是什么。XNU 中,对性能的指标有CPU、内存、IO,而wakeup属于 CPU 的性能指标,同时属于 CPU 指标的还有 CPU 使用率,上面是XNU中对其限

2021-06-03 14:08:39 876

原创 移动开发—OC底层-消息发送机制

在类和对象中,我们了解到,方法存放在类中.那么问题来了.方法长啥样呢?method_tstruct method_t { struct big { SEL name; const char *types; MethodListIMP imp; };}从源码中,我们得知objc_class中有一个类型为method_array_t的二位数组的成员methods.扒开method_array_t的类型,我们找到了最终的method_t,就

2021-06-02 13:18:32 148

原创 移动开发—分类-Category

分类-Category分类的功能在OC中,我们可以使用分类为类添加方法,属性.也可以覆盖类原有的方法,自己添加新的实现.(说是覆盖,其实不然.在稍后分类加载时间会解释原因)分类的结构const char *name; classref_t cls; WrappedPtr<method_list_t, PtrauthStrip> instanceMethods; WrappedPtr<method_list_t, PtrauthStrip> classM

2021-06-01 14:30:10 212

原创 知道swift为什么是面向协议编程么?不知道,还不快来学习!

Siwft为什么是面向协议编程面向协议编程 (Protocol Oriented Programming) 是 Apple 在 2015 年 WWDC 上提出的 Swift 的一种编程范式。面向协议编程通过字面意思,我们可能觉得面向协议编程都是和协议相关的,其实这个假定可能是错误的,面向协议编程与面向对象编程一样,是一种新的编写程序的方式,不仅仅和协议相关。protocol - 基本用法协议定义:protocol 协议名称 { // 定义协议内容}声明协议:class 类名 :

2021-05-31 14:00:17 349

原创 移动开发—iOS系列之-组件化

MGJRouter 蘑菇街组件实现原理方案一 url-block这是蘑菇街中应用的一种页面间调用的方式,通过在启动时注册组件提供的服务,把调用组件使用的url和组件提供的服务block对应起来,保存到内存中。在使用组件的服务时,通过url找到对应的block,然后获取服务。注册[MGJRouter registerURLPattern:@"mgj://detail?id=:id" toHandler:^(NSDictionary *routerParameters) { NSNumber *

2021-05-27 14:48:32 99

原创 SwiftUI 中布局的工作原理,你知道么?

SwiftUI 布局简介在这个技术项目中,我们将探讨 SwiftUI 如何处理布局。有些事情已经解释过了,有些可能是你自己弄明白的,但更多的是你在这一点上想当然的事情,所以我希望一个详细的探索能真正为 SwiftUI 的工作方式提供一些启示。在此过程中,您还将学习如何创建更高级的布局对齐,使用GeometryReader构建特殊效果,以及更多——我知道您会热衷于在自己的应用程序中部署的一些真正强大的功能。继续使用单视图应用程序模板创建一个新的 iOS 项目,并将其命名为 layoutDageMetr.

2021-05-22 15:45:02 288

原创 轻而易举的让你看懂‘’Swift‘’

SWIFT是iOS、MacOS、Watch OS和tvOS应用程序开发的一种新的编程语言。尽管如此,SWIFT的许多部分将从您在C和Object-C中开发的经验中耳熟能详。SWIFT提供了它自己的所有基本C和Object-C类型的版本,包括Int对于整数,Double和Float对于浮点值,Bool对于布尔值,以及String用于文本数据。SWIFT还提供了三种主要集合类型的强大版本,Array, Set,和Dictionary。与C一样,SWIFT使用变量通过标识名存储和引用值。SWIFT还广泛使用了

2021-05-21 13:38:19 220

原创 移动开发—Swift 进阶;泛型

前言泛型代码让你能根据你所定义的要求写出可以用于任何类型的灵活的、可复用的函数。你可以编写出可复用、意图表达清晰、抽象的代码。泛型是 Swift 最强大的特性之一,很多 Swift 标准库是基于泛型代码构建的。实际上,甚至你都没有意识到在语言指南中一直在使用泛型。例如,Swift的 Array和 Dictionary 类型都是泛型集合。你可以创建一个容纳 Int 值的数组,或者容纳String 值的数组,甚至容纳任何 Swift 可以创建的其他类型的数组。同样,你可以创建一个存储任何指定类型值的字典.

2021-05-20 15:24:01 183

原创 以iOS实现Pipeline设计模式

前言该文介绍Pipeline设计模式,使用场景,以及如何使用OC语言,用链式语法优雅的将Pipeline串联起来。**Pipeline设计**思想来源于责任链模式,如上图所示,有三个概念:Port是产生数据对象;Pipeline是处理数据对象的管道;Packet是数据包,或者管道的上下文;链路比较长的业务场景,大都可以套入这个模式;例如,开播:用户点击开播按钮产生一个点击事件,那么这个事件可以作为一个Port,用于产生点击事件Port产生数据后,会流向Pipeline,假如开播需

2021-05-18 13:58:08 131

原创 移动开发—iOS常见面试问题

前言;作为iOS开发,以下面试问题,你真的全都知道么?1.解释快速枚举。快速枚举是IOS编程语言特性,使您能够对集合的内容进行枚举。它还将使您的代码更快地执行您的代码,因为内部实现减少了消息发送开销,并增加了流水线的潜力。2.解释ARC。弧表示自动参考计数。它是一个编译器级特性,简化了对象的生命周期管理过程。ARC评估对象的生命周期需求,并自动包含编译过程中需要调用的适当方法。3.用目标C语言解释可变类型和不变类型。可变类型意味着您可以在需要时修改内容。但是,当一个对象被标记为不可变时,它意味着

2021-05-15 14:17:34 209 4

原创 移动开发—iOSapp被拒原因汇总

一、 iOS 端常见被拒原因汇总App 内包含分发下载分发功能(引导用户下载 App 等功能)。提供的测试账号无法查看实际功能通过接口返回布尔值判断 App 是否升级,但审核期间该接口不请求审核账号,任何时候在任何 ip 登录看到的都是审核版。提供的登陆账号和密码不对,登陆不上运营填写的营销关键字有问题元数据问题,iPhoneX 截图中 iPhone 壳子是 iPhone7 的,应该是 iPhoneX说明隐私权限的作用。营销文字,某些能力需要资质。此类功能在审核期间都关闭修改隐私权限相关

2021-05-14 13:23:49 339

原创 全网独一无二的iOS启动速度优化

启动时间应用启动流程IOS应用的启动可分为pre-main阶段和main()阶段,其中系统做的事情依次是:前主阶段1.1.加载应用的可执行文件1.2.加载动态链接库加载器DYLD(动态加载器)1.3。DYLD递归加载应用所有依赖的dylib(动态库动态链接库)Main()阶段2.1。DYLD调用Main()2.2。调用UIApplicationMain()2.3。调用应用程序将最终运行2.4。调用完成了LaunchingWithOptions启动耗时的测量在进行优化之前,我们首先应该能测量各阶段的

2021-05-13 14:40:45 117

原创 全网最新 iOS启动优化知识

本文要是要针对启动优化相关概念和最佳实践的介绍。什么是启动首先来看一下启动类型都有哪几种,以及每种启动类型的特点。启动类型共有三种启动类型,分别为:冷启动、热启动和重新启动,下面为它们的特点。冷启动重启之后。APP 未在 iPhone 的内存中。APP 线程不存在。热启动最近被终止的。APP 部分在内存中。APP 线程不存在。重新启动APP 被暂停(比如按下 home 键)。整个 APP 都在内存中。APP 线程存在。介绍完启动类型,下面来看一下启动共分为几个阶段以及每个阶

2021-05-12 15:55:33 147

原创 简单明了的在Spark中做到内存管理与调优

Spark 是基于内存的大数据计算引擎,因此,在编写 Spark 程序或者提交 Spark 任务的时候,要特别注意内存方面的优化和调优。Spark 官方也提供了很多配置参数用来进行内存或 CPU 的资源使用,但是为什么我们要进行这些参数的配置,这些参数是怎么影响到任务执行的,本篇文章将从 Spark 内存管理的原理方面进行分析。一、JVM 内存1.JVM 内存区域划分因为 Spark 任务最终是运行在 java 虚拟机里面的,所以这里先分析一下 JVM 的内存区域划分。JVM 的运行时内存划分主要包括

2021-05-10 14:31:03 355

原创 iOS开发用不可思议的代码电量优化(下)

电量测量1.读取官方日志Sysdiagnose。这个方法相对精确一些,有点麻烦的是,我们需要整个获取日志再拿来分析,不太好在线上应用中使用。而且无关数据过多,读取比较艰难。 我们可以读取iOS 电量测试实践来了解细节。2.开发者模式配合Instruments打开Developer选项中的Start Logging —> 断开iphone与PC连接 —> 一系列的用户操作 —> Stop Logging —> 连接iphone与PC, 将电量消耗数据导入Instruments。

2021-05-10 13:52:42 573

原创 在iOS 开发者下是如何图片处理与性能优化的呢

图片在计算机世界中怎样被存储和表示?图片和其他所有资源一样,在内存中本质上都是0和1的二进制数据,计算机需要将这些原始内容渲染成人眼能观察的图片,反过来,也需要将图片以合适的形式保存在存储器或者在网络上传送。这种将图片以某种规则进行二进制编码的方式,就是图片的格式。常见的图片格式图片的格式有很多种,除了我们熟知的 JPG、PNG、GIF,还有Webp,BMP,TIFF,CDR 等等几十种,用于不同的场景或平台。这些格式可以分为两大类:有损压缩和无损压缩。有损压缩:相较于颜色,人眼对光线亮度信息更

2021-05-08 14:02:06 210

原创 一个iOS开发 用不可思议的代码使电量优化 (上)

在现如今的开发中, 电量消耗是一个应用运行效果的一个重要的衡量标准,尤其是直播,运动应用。 设备中的每个硬件模块都会消耗电量。电量的最大消费者是CPU,但这只是系统的一个方面。一个编写良好的应用需要谨慎地使用电能。用户往往会删除耗电量大的应用。 除CPU外,耗电量高、值得关注的硬件模块还包括网络硬件、蓝牙、GPS、麦克风、加速计、摄像头、扬声器和屏幕。 如何降低电量的消耗,是延长使用时间的关键。我们要关注以下:判断电池的剩余电量及充电状态如何分析电源如何在 iOS 应用中分析电源, CPU 和资源.

2021-05-06 14:10:18 262

原创 带你探索你所不知道的objc arc

ARC or not?Automatic Reference Counting是objc发展以来相当重要的一个进步对于开发者,任何能降低开发难度,简化代码的功能,我们都应该去了解和使用。我们应该利用一切“偷懒”的机会,将软件开发的复杂度分解并控制在一个个小的范围内,使得对于分解后的每一个小的任务,都能被新手掌握和维护。基于简化开发的思想来看,ARC绝对是一个没理由拒绝的技术进步。ARC随着iOS5问世,到现在iOS8都快出了,你还在手动写retain,release么?除了固守思想外,对ARC

2021-04-25 14:13:19 73

原创 iOS开发之高级面试题

一千个读者眼中有一千个哈姆雷特,一千名 iOS 程序员心目中就有一千套 iOS 高级面试题。本文就是笔者认为可以用来面试高级 iOS 程序员的面试题。这套题的题目跟公司和业务都没有关系,而且也并不代表笔者本人可以把这些题回答得非常好,笔者只是将一部分觉得比较好的题从收集的面试题里面抽出来了而已。收集的面试题有以下三个来源:笔者在准备面试的过程中搜集并整理过的面试题。笔者在准备面试的过程中自己思考过的新题。笔者在面试过程中遇到的觉得比较好的题。本文分为三个部分展开:面试题喜欢考察的和不喜欢考察

2021-04-24 14:14:28 905

转载 iOS 动态化的故事

今天聊聊 iOS 动态化的故事。问题在开发模式上,web 的方式是比较先进的,有各种优点,包括跨平台/UI开发效率高,最重要的是可以时刻保证用户看到的程序是最新的,没有版本概念,整个系统时刻保持在掌握之中,而客户端开发模式相对 web 开发是一种倒退,客户端做不到这样的动态化,无法随时更新,目前一个客户端程序要更新成本是很高的,需要发布版本,也无法保证所有人都能更新到这个版本,这是最大的弱点,也是非常大的一块需求。原因为什么会有这种倒退,最主要原因是:苹果引领的体验优先规则。在 iPhone 出现

2021-04-22 13:57:58 159

原创 iOS面试题系列之算法

1.时间复杂度时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道.但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了.并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多.一个算法中的语句执行次数称为语句频度或时间频度.记为T(n).时间复杂度 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(

2021-04-18 19:47:44 280

原创 2021—iOS 面试题汇总

2021—iOS 面试题汇总简单介绍下NSURLConnection类及+ sendSynchronousRequest:returningResponse:error:与– initWithRequest:delegate:两个方法的区别?答: NSURLConnection主要用于网络访问,其中+ sendSynchronousRequest:returningResponse:error:是同步访问数据,即当前线程会阻塞,并等待request的返回的response,而– initWithRe

2021-04-16 12:17:43 270

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除