一、什么是缓存这里说缓存是一种广义概念,在计算机存储层次结构中,低一层存储器都可以看做是高一层缓存。比如Cache是内存缓存,内存是硬盘缓存,硬盘是网络缓存等等。缓存可以有效地解决存储器性能与容量这对矛盾,但绝非看上去那么简单。如果缓存算法设计不当,非但不能提高访问速度,反而会使系统变得更慢。从本质上来说,缓存之所以有效是因为程序和数据局部性(locality)。程序会按固定
iOS 底层探索篇 —— KVC 底层原理1. Method Swizzling坑与应用1.1 method-swizzling 是什么?1.2 坑点坑点1:method-swizzling使用过程中的确保执行一次解决方案坑点2:子类没有实现,父类实现了解决方案坑点3:父类子类都没有实现解决方案class_replaceMethod, addMethod, method_exchangeImp
转载 2023-08-03 23:21:56
71阅读
  碰见问题是,客服反馈有一些图片没有及时更新导致自己没有抢到优惠,才注意到webview缓存相关一些知识。后台配合做了一些修改,通过控制cache-control实现对不同资源进行不同缓存策略。现在做一下总结。 1.NSURLRequestUseProtocolCachePolicy如果缓存数据不存在,则直接从源端加载数据;否则,如果缓存响应中没有明确表示每次请求必须重新验证,
转载 2023-07-14 23:10:34
121阅读
1. HashSet底层原理 基于HashMap实现,HashSet底层使用HashMap来保存所有元素,hashset实现简单,hashset操作是调用底层hashmap方法。默认初始一个容量未16负载因子为0.75hashmap。2. HashMap底层原理 HashMap是基于哈希表Map接口非同步实现。 允许使用null值和null键。无序。 HashMap数据结构“数组+链表+
转载 2023-11-07 06:27:28
55阅读
 前面一片文章介绍了如何上传和下载文件,这篇文章将介绍一下如何在iOS设备中进行缓存。 这篇文章将只介绍一下将内容缓存到内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容。 使用缓存目的是为了使用应用程序能更快速响应用户输入,是程序高效运行。有时候我们需要将远程web服务器获取数据缓存起来,减少对同一个url多次请求。 内存缓存我们可以使用sdk中NSURLCache类。N
转载 2024-01-31 21:11:16
87阅读
聪明,是客户对咨询顾问印象,其实这种"聪明",更多是因为他们比普通人更熟练地运用"框架"思维,经过长期咨询锤炼,如何界定问题、分析问题、解决问题框架已经成为他们一种本能。 在麦肯锡金字塔原理中,芭芭拉说过:“麦肯锡并不神秘、方法论铸就传奇”,确,作为曾经麦肯锡人,我认为很多思维方式并不像外界想象那样神秘,而且很多人都懂,只是没有养成下意识思维习惯。- 一、议题思维面对问题慢一点动手
JDK1.8之前HashMap在jdk1.8之前HashMap底层采用数组+链表;HashMap是基于哈希表Map接口非同步实现。此实现提供所有可选映射操作,并允许使用null值和null键。HashMap储存是键值对,HashMap很快。此类不保证映射顺序,特别是它不保证该顺序恒久不变。HashMap实际上是一个“链表散列”数据结构,即数组和链表结合体。数组:存储区间连续,占用内
注意:想做缓存,一定是GET请求哦,POST请求的话你还做什么缓存啊! 前些日子,我因为不会做缓存,但是项目有需要,我就百度了很多,慢慢缓存有了了解。原理上明白了,但是还是不会做。我最后发现,百度到那些是对,就是很简单(需要我们做很少)。 在这里我针对我做做一下介绍(我希望得到大神指点,毕竟我是理解而不会用AFN做,这里做很简单)分为三步,你可以做一个demo试试:1、在AppDe
转载 2023-07-20 20:51:52
130阅读
# iOS RAC底层开发指南 ## 1. 介绍 在iOS开发中,RAC(ReactiveCocoa)是一种基于响应式编程框架,它可以帮助我们更方便地处理异步操作和事件响应。本文将指导你如何实现iOS RAC底层开发。 ## 2. 实现流程 下面的表格展示了整个实现过程步骤: | 步骤 | 描述 | |---|---| | 步骤一 | 创建一个新iOS项目 | | 步骤二 | 导入
原创 2023-11-19 06:47:20
43阅读
转载:iOS开发-UITableView底层实现
转载 2023-05-22 11:57:49
69阅读
# iOS set 方法底层实现 在 Objective-C 和 Swift 中,`set` 方法是一个非常重要概念,尤其是在 iOS 开发中。它用于设置对象属性,通常与实例变量(ivars)搭配使用。然而,关于 `set` 方法底层实现,很多开发者并不是特别清楚。本文将深入探讨 `set` 方法底层实现,配合代码示例和类图,帮助大家更好地理解这个概念。 ## 1. 基础概念 在
原创 10月前
87阅读
教你iOS改变frame底层方法 作为一名经验丰富开发者,我将教你如何在iOS中改变frame底层方法。在开始之前,我将为你展示整个流程,并为每个步骤提供详细说明和示例代码。 ## 整体流程 下面是改变frame底层方法整体流程,你可以使用表格形式来展示。 | 步骤 | 描述 | | ---- | ---- | | 步骤1 | 获取要改变frame视图 | | 步骤2 | 创
原创 2023-12-13 09:48:06
38阅读
文章目录SideTables补充知识SideTablespinlock_t slock自旋锁锁分离锁、分拆锁自旋锁和互斥锁苹果选择RefcountMapweak_table_tweak_entry_tSideTables和SideTable关系对于__weak修饰符修饰变量处理objc_initWeak两个参数:作用storeWeak()weak_unregister_no_lockwe
转载 2023-07-25 09:18:58
165阅读
关于scrollView思考在iOS开发中我们会大量用到scrollView这个控件,
转载 2022-11-28 16:51:45
137阅读
上一篇大致了解了AFNetworking。网络请求主要核心就是建立连接传送自己参数发送请求,然后得到返回结果,对数据进行解析。这里大致说一下AFNetworkingAFURLRequestserialization。构建请求 1)格式化参数 用户参数(NSArray,NSDictionary,NSSet等)转化为AFNetworking要求数据,每一个key-value对都用一个对象A
转载 2023-11-21 22:43:35
94阅读
一、引言    AFNetworking是iOS/OS开发中常用一个第三方网络库,可以说它是目前最流行网络库,但其代码结构其实并不复杂,也可以说非常简洁优美。在AFNetworking中,大量使用线程安全开发技巧,读此源码也是一次很好的多线程学习机会。本篇博客从主要结构和网络请求主流程进行分享,解析了AFNetworking设计思路与工作原理,后面还有其中
转载 2024-02-29 09:22:42
194阅读
iOS 开发中,缓存是一种重要技术手段,它可以显著提升应用性能和用户体验。然而,随着缓存技术使用,许多开发者会遇到缓存失效、数据不一致性等问题。为了更好地解决这些“iOS 开发缓存”问题,我将记录整个过程,涵盖背景定位、核心维度、特性拆解、实战对比、选型指南及生态扩展。 ### 背景定位 在讨论 iOS 开发缓存之前,我们需要了解缓存基本概念和作用。缓存是指在存储系统中,临时保存数
原创 7月前
6阅读
# 在 iOS 中实现方法缓存结构 在 iOS 开发中,我们经常需要对方法执行结果进行缓存,以提高性能并减少重复计算时间。本文将引导你一步一步实现一个简单方法缓存”结构。我们将收藏方法结果,以便在多次调用相同参数时直接返回之前计算结果。 ## 流程概述 我们可以将实现方法缓存过程分为以下几个步骤: ```mermaid flowchart TD A[开始] -->
原创 9月前
22阅读
使用缓存目的是为了使用应用程序能更快速响应用户输入,是程序高效运行。有时候我们需要将远程web服务器获取数据缓存起来,减少对同一个url多次请求。内存缓存我们可以使用sdk中NSURLCache类。NSURLRequest需要一个缓存参数来说明它请求url何如缓存数据,我们先看下它CachePolicy类型。 NSURLRequest *request = [NSURL
转载 2023-12-29 23:10:04
85阅读
NSURLRequestCachePolicy指定缓存逻辑。URL加载系统提供了一个磁盘和内存混合缓存,来相应网络请求。这个缓存允许一个应用减少对网络连接依赖,并且增加性能。使用缓存目的是为了使用应用程序能更快速响应用户输入,是程序高效运行。有时候我们需要将远程web服务器获取数据缓存起来,减少对同一个url多次请求。    NSURL
转载 2023-10-27 12:48:34
40阅读
  • 1
  • 2
  • 3
  • 4
  • 5