![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS面试
文章平均质量分 72
依旧风轻
葵花成海,你在不在
展开
-
iOS项目怎样进行二进制重排
在iOS项目中,二进制重排(Binary Reordering 或者 Binary Rearrangement)是一种优化技术,主要目的是通过重新组织应用程序的二进制文件中的代码和数据段,来提高应用程序的性能,特别是启动时间和运行时的性能。原创 2024-07-04 02:29:02 · 1092 阅读 · 0 评论 -
精确计算应用的冷启动耗时
在iOS项目中,冷启动时间是指从用户点击应用图标开始,到应用完全加载并呈现出第一个界面(可能需要网络请求必要的数据)所花费的时间。这里以 main 函数为界,分为两个时间段:* 从用户点击应用图标 ~ invoke main func* invoke main func ~ 首屏渲染完成原创 2024-07-04 01:15:42 · 1472 阅读 · 0 评论 -
使用AES加密数据传输的iOS客户端实现方案
在现代应用开发中,确保数据传输的安全性是至关重要的。本文将介绍如何在iOS客户端中使用AES加密数据传输,并与服务器端保持加密解密的一致性。本文不会包含服务器端代码,但会解释其实现原理。原创 2024-07-02 08:55:37 · 703 阅读 · 1 评论 -
什么是预主密钥(pre-master secret)?
在SSL/TLS协议中,预主密钥(Pre-Master Secret)是建立安全连接的关键要素之一。它在客户端和服务器之间生成共享密钥的过程中扮演重要角色。本文将详细介绍预主密钥的生成与使用过程,以及它在TLS握手中的重要性。原创 2024-06-29 07:20:26 · 970 阅读 · 0 评论 -
新手小白的 Socket 课
Socket:一种软件结构,用于在计算机网络中进行数据传输的端点。Endpoint:一个网络连接的一端,包括 IP 地址和端口号。Socket 在计算机网络中的作用就是在网络上的两个设备之间创建、维护和关闭连接,进行数据传输。原创 2024-06-25 01:26:09 · 365 阅读 · 0 评论 -
SSL/TLS 握手过程
SSL/TLS 握手过程是客户端和服务器之间建立安全连接的过程。原创 2024-06-24 23:48:04 · 1000 阅读 · 0 评论 -
iOS开发者眼中的SSL/TLS
如果你的应用确实需要使用HTTP,可以通过配置Info.plist文件来允许HTTP请求。在iOS项目中,默认情况下不允许使用明文的HTTP请求,这是因为自iOS 9以来,苹果引入了。原创 2024-06-24 23:17:27 · 385 阅读 · 0 评论 -
http 和 https 建立连接的不同
HTTP和HTTPS在建立连接时都需要进行“三次握手”,因为三次握手是TCP协议的一部分,用于建立可靠的传输层连接。原创 2024-06-24 22:58:29 · 494 阅读 · 0 评论 -
当你在浏览器输入一个地址
你在浏览器中输出了一个地址,回车后,一直到显示页面,中间经历了哪些过程 ?原创 2024-06-24 21:47:50 · 1365 阅读 · 0 评论 -
HTTP 与 HTTPS 的区别
HTTP和HTTPS的主要区别在于安全性。HTTP不加密数据传输,容易被攻击,不适合传输敏感信息;而HTTPS通过SSL/TLS加密数据,提供了数据保密性、完整性和身份验证,更加安全可靠,广泛应用于需要保护用户隐私和敏感信息的场景。原创 2024-06-24 20:56:24 · 623 阅读 · 0 评论 -
显著提高iOS应用中Web页面的加载速度 - 提前下载页面的关键资源(如JavaScript、CSS和图像)
手动下载并缓存资源是一种有效的方式,可以确保在需要时资源已经在本地存储,这样可以显著提高加载速度。原创 2024-06-15 01:42:51 · 449 阅读 · 0 评论 -
atomic特质的局限性
为什么在实际的 Objective-C 开发中, 几乎所有的属性都声明为 nonatomic?声明为 atomic 的属性我是真的没见过在实际的 Objective-C 开发中,大多数属性通常声明为nonatomic,主要原因包括性能考虑和常见的设计模式。原创 2024-06-09 18:30:22 · 607 阅读 · 1 评论 -
正确理解iOS中的同步锁
在 iOS 开发中,同步锁(synchronized lock)是一种用于管理多线程访问共享资源的机制,而不是某一种特定类型的锁。它涵盖了多种具体实现和技术,用于确保同一时间只有一个线程能够访问某个共享资源,从而避免数据竞争和确保数据一致性。这些同步机制的共同目标都是为了在多线程环境中保护共享资源,防止多个线程同时访问导致的竞态条件和数据不一致问题。具体使用哪种同步机制取决于具体的应用场景和需求。总结起来,同步锁是一种机制,其核心思想是通过某种锁的实现来管理多线程对共享资源的访问,确保线程安全。原创 2024-06-09 13:54:04 · 998 阅读 · 0 评论 -
Objective-C中分类无法添加实例变量的底层原理
对象的内存布局在类定义时确定,无法在运行时动态修改。分类是在运行时动态加载的,无法重新分配和布局现有的对象实例。这种设计保证了对象内存布局的稳定性和内存访问的安全性。分类主要用于扩展类的行为(添加方法),而不是扩展类的状态(添加实例变量)。如果需要添加实例变量,可以使用类扩展(Class Extension)或继承(Subclassing)来实现。原创 2024-06-05 08:30:36 · 904 阅读 · 0 评论 -
理解NSCopying协议
NSCopying协议用于让对象能够被复制。实现这个协议的类需要定义如何创建该对象的副本。这个副本是独立的,不会与原对象共享内存地址。原创 2024-06-05 08:17:48 · 513 阅读 · 0 评论 -
weak的底层原理
弱引用表的键是被引用对象的内存地址,而值是一个集合,包含了所有指向该对象的弱引用指针的地址。当对象被释放时,运行时会在弱引用表中找到所有指向该对象的弱引用,并将它们置为nil,然后删除对应的条目。通过这种机制,iOS 保证了weak引用的安全性和可靠性。原创 2024-06-05 07:59:02 · 738 阅读 · 0 评论 -
Objective-C中的 __weak 和 weak 是什么 ?
都与 ARC(Automatic Reference Counting,自动引用计数)相关,并且它们用于描述对象的弱引用。但是,它们在语法和上下文中有一些微妙的差异。在 Objective-C 中,原创 2024-06-04 18:09:12 · 752 阅读 · 0 评论 -
Message forwarding mechanism (消息转发机制)
iOS的消息转发机制是在消息发送给对象时,找不到对应的实例方法的情况下启动的。消息转发允许对象在运行时处理无法识别的消息,提供了一种动态的、灵活的消息处理方式。方法,询问对象是否有其他对象可以处理该消息。通过返回另一个对象的实例,消息可以转发给该实例。在这个阶段,运行时系统会询问对象是否能动态添加方法来处理未知消息。在这个示例中,我们展示了如何通过动态方法解析、快速转发和标准转发来处理。如果动态方法解析失败,运行时会调用。方法进行标准消息转发。方法获取方法签名,然后在。方法来动态添加方法实现。原创 2024-06-04 14:08:13 · 596 阅读 · 0 评论 -
Message passing mechanism (消息传递机制)
objc_msgSend 是 Objective-C 运行时系统中的一个核心函数,用于实现消息传递机制。在 Objective-C 中,方法调用实际上是消息传递的过程,当你在代码中调用一个方法时,编译器会将其转换为 objc_msgSend 函数的调用。原创 2024-06-04 12:46:10 · 1038 阅读 · 0 评论 -
RunLoop小白入门
RunLoop是 iOS 和 macOS 应用程序框架中的一个核心概念,用于管理线程的事件处理。它可以看作是一个循环,用于持续接收和处理各种事件,如用户输入、定时器、网络事件等。RunLoop 在保持应用程序响应用户交互和系统事件方面起着关键作用。原创 2024-06-03 05:48:53 · 1040 阅读 · 1 评论 -
小心串行队列的执行依赖
iOS串行队列中任务的执行先后原创 2024-03-18 04:13:38 · 179 阅读 · 0 评论 -
746. 使用最小花费爬楼梯 (Swift版本)
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。原创 2024-03-08 19:31:48 · 663 阅读 · 1 评论 -
236. 二叉树的最近公共祖先 (Swift版本)
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。原创 2024-03-08 12:27:42 · 597 阅读 · 0 评论 -
寻找最近的公共父视图
循环嵌套迭代来查询最近的公共父视图, 时间复杂度。求两个视图的最近公共父视图。原创 2024-03-08 00:30:54 · 313 阅读 · 0 评论 -
NSURLSession与NSURLConnection
两者的概述两者的讨论多数是由”AFNetworking2.0和3.0”的问题引起的, 因为AFN 3.0用NSURLSession替换了NSURLConnection, 其实这也是苹果愿意看到的,WWDC2013上随着iOS 7一同推出了NSURLConnection的替代者 - NSURLSession, 它是对NSURLConnection进行了重构优化后的新的网络接口.两者的主要区别1. 任务原创 2017-08-07 15:24:58 · 626 阅读 · 0 评论 -
iOS应用的沙盒目录结构
出于安全考虑,iOS系统的沙盒机制规定: 每个应用都只能访问当前沙盒目录下面的文件(也有例外, 比如系统通讯录能在用户授权的情况下被第三方应用访问), 这个规则把iOS系统的封闭性展现的淋漓尽致。一. 沙盒目录结构每个沙盒下面都有相似的目录结构, 如下图所示(出自苹果官方文档): 1. MyApp.app①. 存放内容该目录包含了应用程序本身的数据,包括资源文件和可执行文件等。程序启动以后,会根据转载 2017-09-06 23:18:47 · 442 阅读 · 0 评论