iOS移动开发
文章平均质量分 64
iOS猎人笔记
作者曾先后就职于美团、网易云音乐,CSDN目前主要汇集了我个人多年的学习笔记总结与记录、真实的开发经验整理,一方面便于以后自己翻查,另一方面希望可以帮助到大家,有问题欢迎指出。
展开
-
iOS开发笔记之九十八——关于Memory Leak总结笔记
*****阅读完此文,大概需要3分钟******原创 2023-02-28 20:02:45 · 565 阅读 · 0 评论 -
iOS开发笔记之九十七——关于Restful API的一些总结
*****阅读完此文,大概需要3分钟******原创 2023-02-24 12:54:22 · 901 阅读 · 0 评论 -
iOS开发笔记之九十六——本地Data Persistence总结笔记
*****阅读完此文,大概需要5分钟******原创 2023-02-18 20:34:57 · 820 阅读 · 0 评论 -
iOS开发笔记之九十五——Swift中的常见高阶函数及实现
本文将介绍这些函数的原理和用法。map是一种常见的高阶函数,它可以将一个集合中的每个元素映射到另一个集合中,然后返回一个新的集合。filter是一种常见的高阶函数,它可以从一个集合中过滤出符合条件的元素,然后返回一个新的集合。在这个例子中,我们将一个包含三个数组的数组扁平化成一个单一的数组,然后将结果存储在一个新的数组中。在这个例子中,我们将原始的数组中的所有偶数元素过滤出来,然后将结果存储在一个新的数组中。在这个例子中,我们将原始的数组中的每个元素乘以2,然后将结果存储在一个新的数组中。原创 2023-02-14 14:51:29 · 404 阅读 · 0 评论 -
iOS开发笔记之九十四——Swift中的可选类型Optional
一、Optional类型的概念Swift中为何要引入Optional的概念,官方文档中有介绍:Swift also introduces optional types, which handle the absence of a value. Optionals say either “thereisa value, and it equalsx” or “thereisn’ta value at all”. Using optionals is similar to using...原创 2021-09-23 17:04:35 · 4613 阅读 · 0 评论 -
iOS开发笔记之九十三——Swift中的fallthrough关键字
Fallthrough是Swift语言的一种新特性,由于Swift语句可以省略break的关键字,而且它不会继续往下执行。但是在其他语言中省去break会顺序执行,直到碰到break或者default才完成。Swift语言为了更加灵活的应对多种场景,提供了fallthrough关键字供我们选择使用。演示示例如下:var index = 10switch index { case 100 : print( "index为100") case 10,15 :原创 2021-09-14 16:02:49 · 3021 阅读 · 0 评论 -
iOS开发笔记之九十二——Swift中的guard关键字
guard中文有"守护"的意思,guard关键字在官方文档中的具体解释如下:“A guard statement, like an if statement, executes statements depending on the Boolean value of an expression. You use a guard statement to require that a condition must be true in order for the code after the gua原创 2021-09-14 15:23:07 · 3417 阅读 · 0 评论 -
iOS开发笔记之九十一——Swift中的mutating关键字
mutating单词翻译过来有“可变化,可改变”的意思。它主要用在Swift中的:结构体(struct)、枚举(enum) 扩展(extension)、协议(protocol)中修饰方法Swift结构体(struct)、枚举(enum) 中均可以包含类方法和实例方法Swift官方是不建议在结构体(struct)、枚举(enum)的普通方法里修改属性变量。但是,在方法前面添加 mutating 关键字之后就可以在对应的 mutating代理方法内修改。示例1:protocol Per原创 2021-09-14 11:07:55 · 8060 阅读 · 0 评论 -
iOS开发笔记之九十——在OC项目中支持Swift
*****阅读完此文,大概需要5分钟******这个过程不复杂,但是有些问题遇到了可能就会捣弄很久,特此输出此文,希望可以帮助大家快速解决相应的问题。一、配置步骤1、主项目中添加工程名-Bridging-Header.h这一步可以如其他文章介绍的那样,先添加Test.swift然后,Xcode会提醒你添加对应的-Bridging-Header文件的。2、配置工程Build Settings设置Defines Module为Yes 设置Podfile,如下:use_modular原创 2021-08-19 11:18:15 · 11684 阅读 · 1 评论 -
iOS开发笔记之八十九——Swift中的闭包
*****阅读完此文,大概需要5分钟******一、闭包的基本概念与写法1、Swift中闭包需要对比OC的block:OC的基本定义与写法:返回值(^闭包名称)(参数类型 参数名) = ^(参数类型 参数名){函数体};void(^XXBlock)(int a) = ^(int a){ NSLog(@"hello");};Swift基本定义与写法: {(参数:参数类型)->返回值类型 in 函数体}如果设置了返回值,记得返回对应类型的值let test =..原创 2021-08-17 19:23:06 · 11431 阅读 · 1 评论 -
iOS开发笔记之八十八——pod update卡在Updating local specs repositories的解决
你如果直接搜索,很多文章会告诉你执行下面两个命令: pod update --verbose --no-repo-update pod install --verbose --no-repo-update对于有些情况执行以上命令可以解决,但是如果你的工程依赖的Pod有版本升级时,你本地Podfile中的版本可能就会对不上,直接执行上面命令可能会报错,这时候我们可以尝试手动更新local specs。步骤如下:1、进入cd ~/.cocoapods/repos目录,2、把对应的repos分原创 2021-08-11 19:08:01 · 6149 阅读 · 0 评论 -
iOS开发笔记之八十七——Swift中的值类型
*****阅读完此文,大概需要3分钟******这一概念在OC中就已经存在。Struct可以想像class一样定义属性、方法,可以遵循协议,支持扩展等。一、值类型(struct)与引用类型(class)的不同点1、内存管理方式不同,值类型一般分配在栈上,引用类型一般分配在堆上。这就意味着引用类型分配与释放将会是个复杂的过程,值类型一般没有析构方法;2、引用类型有丰富的对象行为,可以继承,被多个所有者同时持有。将一个引用赋值给一个新的变量或者传递给一个函数的时候,它们都指向同一个实例。3、原创 2021-08-06 18:44:13 · 13161 阅读 · 0 评论 -
iOS开发笔记之八十六——组件化Pod支持多源配置
一、背景一个组件化的Pod代码仓库,常常会被多个业务场景使用,但是不同业务的场景需求不同,需要的代码也不同,为了更加灵活地支持多种场景,常常会采取以下两种办法:(1)继续细化拆分多个Pod(2)使用subspec方式进行代码管理。目前这两种方式都有它的弊端。第一种,继续细化拆分多个Pod如上图,原来的一个Pod要拆分四个“物理”Pod,如果继续细化拆分多个Pod,除了会导致过多的Pod产生,会管理越来越多的依赖关系。第二种,使用subspec方式进行代码管理sub..原创 2021-08-03 11:37:07 · 5916 阅读 · 3 评论 -
iOS开发笔记之八十五——带悬停效果页面的搭建方案总结
一、背景上图为大众点评App首页带有悬停效果的页面是App中最为常见的页面了,几乎任意一款主流app都会有这种页面。这种页面要求整个页面可以滑动,当滑倒一定高度时,要求某一部分做悬停,然后开始滑动下部的列表;这种页面我在业务中不止一次碰到,因为每次碰到都会因为调试花费较多时间;与此同时,这个页面框架较为复杂,不太好抽象出框架下沉,所以特意整理输出了一些方案,供大家参考,以便再碰到时,可以快速搭建这种页面;二、搭建方案这种页面方案不是唯一的,目前把自己开发中调研过的集中方案介绍一下,每..原创 2021-07-28 16:11:43 · 13895 阅读 · 0 评论 -
iOS开发笔记之八十四——OC代码自动格式化的探究
一、背景代码风格人各有异,而且开发中复制粘贴的代码也很多,自己虽然常常开发后会敲一下快捷键control+i(Editor-Structure-Re-Indent),但是还是会忘记;所以想着是不是可以有一套自动化工具,可以敲个脚本就把代码给格式化了(至少可以把缩进给解决了);下面是我调研的几种思路和方案,它们主要是:Control+i的命令化(不可行或者说没搞定) 利用Vim的格式化功能(可行,不是很推荐) Clang-format的格式化代码功能(可行,推荐此种)二、利用Vim的格...原创 2021-04-13 19:44:20 · 13944 阅读 · 0 评论 -
iOS开发笔记之八十三——iOS面试总结《三》之一道看似简单的面试题
******阅读完此文,大概需要3分钟******一、前言之前一次面试中,一个面试官在几乎面试到最后时,“漫不经心”地抛给了我一道题目:一个整型变量起始值是0,两个线程分别对它做+1操作100次,最终的值是多少?我第一反应时,是不是面试官最后没有题目问了,随心的问了一句,后来我才发现,这是一道看起来很简单的题目,其实充满了坑坑洼洼的题目,他对面试者的知识考查以及反应能力都有考察到。二、解题:面试官题目描述给的不多,目前只有:“整型变量i=0”、“两个线程”、“分别100次的+1操作”原创 2021-04-12 19:37:30 · 12311 阅读 · 0 评论 -
iOS开发笔记之八十二——2021 iOS面试总结《二》之进击篇
继上次写的2020 iOS面试总结《一》已经过去很久了,在这段时间内不断有人给我私信,问我为啥没有第二部了,主要是入职了新公司后工作比较繁忙,加上自己比较懒,一直没有继续写了,前阵子打开公众号发现,突然一下子多了那么人关注,令我有点意外,决定继续写下去。这篇文章,我主要介绍我在面试过程中如何进行的准备、要不要找猎头等这些方面进行介绍。...原创 2021-03-27 13:24:07 · 12941 阅读 · 0 评论 -
iOS开发笔记之八十一——2020 iOS面试总结《一》之干货篇
******阅读完此文,大概需要5分钟******这是我毕业之后第三次开始找工作了,适逢2019年底,我清楚地知道,iOS开发已经不是很景气了,尽管自己有名校以及大厂背景,但是自己一点都没有把握,自己上一份工作是小厂,每天都很焦虑,知道后面形势不好,不想自己陷入被动的局面,所以自己裸辞全面投入了面试准备,目标也很明确,进稳定的大厂。现在目标已经达成,我想分两篇文章来描述这个过程,留给还在路上的朋友。这一篇文章,我主要把面试的一些题目,整理了一下发了出来,都是自己亲身经历的,由于时间有点久了,所以有些信息原创 2020-07-12 22:42:20 · 12592 阅读 · 0 评论 -
iOS开发笔记之八十——单例的总结笔记
******阅读完此文,大概需要10分钟******一、单例的创建#import "MDInstanceManager.h" @implementation MDInstanceManager static MDInstanceManager *shareInstance = nil;static dispatch_once_t onceToken; + (instancetype)shareInstance{ dispatch_once(&onceToken, ^原创 2020-07-01 19:19:40 · 12813 阅读 · 0 评论 -
iOS开发笔记之七十九——读写线程锁介绍(一)
一、读写锁在多线程环境下,我们经常会遇到读写同步的问题。常见的做法就是将读写做成互斥操作,但是这样会降低读写性能。通常情况下我们希望读操作之间是不互斥的,这个时候就需要用到读写锁了。简单来说,读写锁要做的就是保证:读与读不互斥 读与写互斥 写与写互斥二、GCD提供的读写锁GCD的并发队列有一个Barrier Block的概念,关于Barrier Block,Apple给出的解释如...原创 2019-11-26 20:52:43 · 11703 阅读 · 0 评论 -
iOS开发笔记之七十八——优化git clone/pod install等下载速度慢
一、问题经常碰到从github上拉去仓库会很慢的情况,无论是git clone一个仓库,还是pod install集成你的项目时,速度极其慢的情况,例如:git clone https://github.com/facebook/folly.git这个库,过了半小时,几KB的速度,令人十分捉急:参考以下文章,的确可以大幅度提升下载速度:解决git clone速度慢的问题...原创 2019-11-01 23:02:36 · 1509 阅读 · 0 评论 -
iOS开发笔记之一——Xcode 5.0 EXC_BAD_ACCESS 解决方案之一
最近自己在用Xcode 5.0调试一个小工程项目,发现在进行真机调试时,尤其是单步跟踪时,经常出现EXC_BAD_ACCESS这种异常(模拟器一般不会出现)。经过网上搜索,需要配置一个环境变量,采取以下方案经过验证,可以解决:(1)选择Edit Scheme--->Rundemo.app 找到EnvironmentVariables,增加NSZombieEnabled ,设置为YES。并勾选原创 2014-07-20 10:30:38 · 767 阅读 · 0 评论 -
iOS开发笔记之二——XCTest单元测试框架的使用
第1章 前言单元测试是一种白盒测试,白盒测试是一种细粒度的测试,具体到方法、函数和异常测试。顾名思义,单元测试也就是编码。在我们的软件的开发中,有时自己写了一些逻辑性较强的代码,没有人能够保证自己的代码第一次写出来就能达到要求。所以,需要去验证测试自己的这段代码,实际开发中,由于大家在项目工程中开发,想要程序走到自己的代码,需要很多繁琐的无关的步骤,这样如果要是需要做大量的测试时,针对性不强原创 2014-07-25 13:24:48 · 13045 阅读 · 0 评论 -
iOS开发笔记之三——导入第三方库文件引起的ARC报错问题
一、问题描述Xcode 5.0原创 2014-07-26 17:31:46 · 2111 阅读 · 0 评论 -
iOS开发笔记之四——“未找到应用程序的“aps-environment”的权利字符串”问题
1、问题描述原创 2014-07-26 17:40:42 · 4056 阅读 · 0 评论 -
iOS开发笔记之五——Xcode 6.0 Beta编译工程时可能遇到的问题及参考解决方案
由于开发需要,最近需要将Xcode 由5.0升级到6.0 beta版,原创 2014-07-29 17:16:24 · 4111 阅读 · 0 评论 -
iOS开发笔记之六——视图的生命周期
ooooo原创 2014-08-03 19:13:05 · 939 阅读 · 0 评论 -
iOS开发笔记之七——应用的生命周期
作为应用程序的委托对象,AppDelegate类在应用生命周期的不不同阶段原创 2014-08-03 21:13:11 · 784 阅读 · 0 评论 -
iOS开发笔记之八——设计模式之委托机制
www原创 2014-08-03 21:36:21 · 750 阅读 · 0 评论 -
iOS开发笔记之九——自定义相机的实现
QQQ原创 2014-08-18 15:36:30 · 12699 阅读 · 1 评论 -
iOS开发笔记之十——dealloc的用法
一、详细介绍二、参考资料原创 2014-08-29 09:34:41 · 2272 阅读 · 0 评论 -
iOS开发笔记之十一——ios 8地图定位服务问题
2、参考资料http://www.cocoachina.com/ask/questions/show/116838原创 2014-09-03 16:51:28 · 3218 阅读 · 0 评论 -
iOS开发笔记之十二——启动logo画面的设置
1、2、参考资料原创 2014-09-17 21:34:11 · 2040 阅读 · 0 评论 -
iOS开发笔记之十三——跳转到指定的controller类
1、2、参考资料原创 2014-09-18 18:43:44 · 2142 阅读 · 0 评论 -
iOS开发笔记之十四——Xcode 6.0.1下出现Thread 1: signal SIGPIPE问题的参考解决方案
1、问题描述2、解决方案3、原创 2014-09-22 15:11:32 · 7387 阅读 · 0 评论 -
iOS开发笔记之十五——管理类的设计与实现
1、单例设计模式2、3、参考文献原创 2014-09-24 18:47:13 · 13745 阅读 · 0 评论 -
iOS开发笔记之十六——static关键字
1、前言 想必大部分人2、内容3、参考资料原创 2014-09-27 07:56:39 · 1163 阅读 · 0 评论 -
iOS开发笔记之十七——学习Cocoa和Cocoa Touch框架
1、2、3、参考资料原创 2014-09-27 22:41:34 · 5341 阅读 · 0 评论 -
iOS开发笔记之十八——归档Archiver(一)
在编程开发中,经常需要用某种格式来保存一个或多个对象,以便以后还原这些对象。这个过程包括将(多个)对象写入文件中,以便以后读取该对象。本次笔记记录将学习两种归档数据的方法:属性列表和带键值的编码。1、使用XML属性列表进行归档 如果你的对象是NSString、NSDictionary、NSArray、NSData或者NSNumber类型,你可以使用使用这些类中原创 2014-10-07 21:55:55 · 8287 阅读 · 0 评论 -
iOS开发笔记之十九——一个模态视图切换bug引发的思考
11原创 2014-10-08 17:33:42 · 9333 阅读 · 0 评论