iOS
文章平均质量分 81
分享一些iOS开发知识
弱水三千只取一瓢编号880908
我们都是非常平凡之人,没有家庭背景,没有强大后台,没有八面玲珑的人脉,更没有天选之子的才能,唯一能靠的只有自己。
展开
-
Objective-C—Class底层结构探索,真心分享给你!!!
通过isa走位图 得出的结论是:1,类,父类,元类都包含了isa,superclass2,对象isa指向类对象,类对象的isa指向了元类,元类的isa指向了根元类,根元类isa指向自己3,类的superclass指向父类,父类的superclass指向的根类,根类的superclass指向的nil4,元类的superclass指向父元类,父元类superclass指向的根元类,根元类superclass指向根类,根类superclass指向nil原创 2024-03-24 15:10:51 · 883 阅读 · 0 评论 -
iOS一文轻松了解UIKit动画制作,如此简单
任何 Layer 的可动画属性的设置都属于某个 CATransaction,事务的作用是为了保证多个属性的变化同时进行。CABasicAnimation有三个比较重要的属性,fromValue,toValue,byValue,这三个属性都是可选的,但不能同时多于两个为非空.最终都是为了确定animation变化的起点和终点.中间的值都是通过插值方式计算出来的.插值计算的结果由timingFunction指定,默认timingFunction为nil,会使用liner的,也就是变化是均匀的.转载 2023-05-21 18:27:08 · 834 阅读 · 0 评论 -
整理一份基础Swift面试题,真心能帮助到您
关键词:#Optional #nil在 Swift 中,可选型是为了表达当一个变量值为空的情况。当一个值为空时,它就是 nil。Swift 中无论是引用类型或是值类型的变量,都可以是可选型变量。转载 2023-05-15 16:29:21 · 246 阅读 · 0 评论 -
iOS跨线程与跨进程通讯
是依赖于端口(port)实现的。当我们在线程中创建一个拥有指定端口接收权限的mach_msg结构体,就会阻塞住当前的线程,等待接收消息。当另一个线程中一个拥有发送权限的mach_msg向该端口发送消息时,就会解除当前线程的阻塞状态。Mach Port:基于Mach 内核实现跨线程通讯,在通讯中涉及到的对象(messages消息,ports端口,port sets 端口集)依赖的端口也可以是一个端口集(port set),就是多个端口,只要其中任意一个端口接到消息,就会解除阻塞状态,继续执行。原创 2023-04-03 09:46:54 · 436 阅读 · 0 评论 -
浅谈iOS性能优化之APP崩溃与hook方案
本篇文章将为大家讲解下crash监控及防崩溃处理。如何收集crash利用bugly、友盟等第三方收集监控crash原理防崩溃处理常见崩溃类型防崩溃处理方案hook方案安全接口。转载 2023-03-22 09:47:52 · 345 阅读 · 0 评论 -
XCode解决can‘t locate file for .a异常设置AVAudioSessionCategoryPlayAndRecord与Git密码更改
XCode中,如果直接将 xxx.a 文件拖进到项目中,有时会出现异常。解决方法:在Build Settings选项中,找到Library Search Paths,将 xxx.a 所在的目录加入进去。原创 2023-02-27 11:24:47 · 415 阅读 · 0 评论 -
必须掌握的iOS技术|网络|推送与数据处理
关键词:#闭包Completion Handler 一般用于处理 API 请求之后的返回数据。当URLSessionTask 结束之后,无论成功或是报错,Completion Handler 一般都会接受 3 个参数:Data, URLResponse,Error,注意这 3 个参数都是 Optional。转载 2023-02-12 23:46:31 · 177 阅读 · 0 评论 -
简单聊聊Swift闭包的用法
1.闭包闭包是一个捕获了外部变量或者常量的函数,可以有名字的函数,可以是匿名的函数,也可以是不捕获外部变量的函数。所以可以说闭包是特殊的函数。闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 ObjC 中的代码块(blocks)比较相似。捕获的变量,可以写在捕获列表里. 如果使用捕获列表,即使省略了参数名字、参数类型、返回类型,也必须要用 in 的关键字●捕获列表里面的是捕获的是值,不可变,●未在捕获列表里,捕获到的是地址,可以修改原创 2022-12-04 21:23:26 · 1149 阅读 · 0 评论 -
NSNotificationCenter简单概述
一、NSNotificationCenter 和delegate 的区别是使用 观察者模式 来实现的用于跨层传递消息的机制 (无需代理,双方无需建立关系)KVO也是观察者模式NSNotificationCenter 是使用观察者模式delegate是使用通知者NSNotificationCenter 是一对多原创 2022-11-20 19:08:53 · 1042 阅读 · 0 评论 -
iOS“Delegate”小知识点简单总结
一般声明为 week 以规避循环引用。原创 2022-10-30 16:42:06 · 551 阅读 · 0 评论 -
iOS Block面试题零碎整理
●copy 到堆上block会自动调用内部的_main_block_copy_0 中的 Block_object_assign 函数 该函数来处理auto变量的修饰符(__strong、__week、__unsafe_unretained)做出相应的操作。○block 内部使用的 block 外部的变量,只能是(局部或者全局)静态变量和全局变量,不能是外部的局部变量或者是 OC 属性。●因为 block 捕获的 self 变量赋值给了 block 对应的成员变量,所以 block 是强持有 self 的.原创 2022-10-01 16:28:11 · 1429 阅读 · 0 评论 -
在企业中UITableView用处太大了,学会如何去封装和优化真的很重要,给您的工作带来很多便利
在平常开发中,UITableViewDelegate 和 UITableViewDataSource 这两个协议中有大量方法每次都是复制粘贴,实现起来大同小异,如何跟据企业的业务去封装和优化好,是件长久而持续性的事儿。转载 2022-09-17 11:00:22 · 159 阅读 · 0 评论 -
iOS延时执行 - performSelector
延时执行 - performSelectorperformSelector在运行时去动态找方法,在编译时不做校验,所以编译期间不存在这个方法,是不会报错的。但是运行时不存在就会崩溃。为了程序的健壮性,在执行这个方法之前最好做一下判断原创 2022-08-20 19:48:44 · 493 阅读 · 0 评论 -
iOS手势处理零星整理
● UIPanGestureRecognizer(拖动)● UIPinchGestureRecognizer(捏合)● UIRotationGestureRecognizer(旋转)● UITapGestureRecognizer(点按)● UILongPressGestureRecognizer(长按)● UISwipeGestureRecognizer(轻扫)原创 2022-07-30 18:10:28 · 95 阅读 · 0 评论 -
UIView & CALayer 关系就像夫妻那样亲密无间
UIView和CALayer概念上很相似,是一些被层级关系树管理的矩形块,同样也可以包含一些内容,管理子图层的位置。两者不同的是:UIView可以处理触摸事件;CALayer不处理用户的交互,不参与响应事件传递。...原创 2022-07-30 18:00:31 · 320 阅读 · 0 评论 -
计算机的基础:CPU & GPU
1、CPU(Central Processing Unit,中英处理器)对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片格式的转换和解码、图像的绘制(Core Graphics)2、GPU(GraphicsProcessing Unit,图像处理器)纹理的渲染...原创 2022-07-13 14:11:33 · 575 阅读 · 0 评论 -
iOS之一个 HTTP 超时问题论述
一个 HTTP 超时问题最近有同事反映我们的 app 在网络正常的情况下偶尔会出现请求超时。我的第一反应是某个服务挂掉了(因为最近服务端再搞重构),就反馈给了服务层。但是服务层的同事排查下来发现 api 层并没有产生异常日志,应该不是服务本身或者依赖的中台...原创 2022-06-19 20:36:25 · 1408 阅读 · 0 评论 -
iOS中对OC对象的探寻
在本专栏前面的一些文章中深入探讨过对象的本质、类的本质、消息查找的原理,先简单回顾一下这些知识。一、知识回顾1.1 对象的本质一旦一个对象的结构确定,它在内存中的结构也就被确定,在访问对象属性/成员时,会根据每个成员的大小,经过内存偏移来获取到该成员。1.2 类的本质和方法查找类是元类的实例,就像对象是类的实例一样,实例方法存储在类中,而类方法存储在元类中。当调用一个实例方法如[obj doSomethind],会根据obj->isa获取到类,然后从类的结构中查找到-doSomething方原创 2022-05-18 21:17:38 · 205 阅读 · 0 评论 -
浅析iOSApp签名原理及流程
iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解 iOS App 签名的原理和流程。目的先来看看苹果的签名机制是为了做什么。在 iOS 出来之前,在主流操作系统(Mac/Windows/Linux)上开发和运行软件是不需要签名的,软件随便从哪里下载都能运行,导致平台对第三方软件难以控制原创 2022-05-08 21:32:05 · 1883 阅读 · 0 评论 -
把Android/IOS卡顿掌握了,牛的让你飞起
“我在秒杀iPhone XS的支付页面卡了3秒,最后没抢到”,用户嘶声力竭地反馈了一个卡顿问题。“莫慌莫慌”,等我打开Android Studio, 用上一讲学到的几个工具分析一下就知道原因了。“咦,在我这里整个支付过程丝滑般流畅”。这个经历让我明白,卡顿跟崩溃一样需要“现场信息”。因为卡顿的产生也是依赖很多因素,比如用户的系统版本、CPU负载、网络环境、应用数据等。脱离这个现场,我们本地难以复现,也就很难去解决问题。但是卡顿又非常影响用户体验的,特别是发生在启动、聊天、支付这些关键场景,那我们原创 2022-04-25 18:41:46 · 545 阅读 · 0 评论 -
iOS原生和前端JS交互真没那么简单,了解背后实现让你受益匪浅
JavaScriptCore 开发 App 的框架 ,比如React Native、Weex、小程序、WebView Hybird等框架。原创 2022-04-06 15:25:38 · 3688 阅读 · 0 评论