自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iOS开发笔记

纯粹的个人学习笔记总结与记录、真实的开发经验整理,便于二次用到时翻查。

  • 博客(110)
  • 资源 (18)
  • 收藏
  • 关注

原创 iOS开发笔记之九十九——POP编程之Type Erasure

*****阅读完此文,大概需要10分钟******

2023-04-01 21:38:18 225

原创 iOS开发笔记之九十八——关于Memory Leak总结笔记

*****阅读完此文,大概需要3分钟******

2023-02-28 20:02:45 528

原创 iOS开发笔记之九十七——关于Restful API的一些总结

*****阅读完此文,大概需要3分钟******

2023-02-24 12:54:22 789

原创 iOS开发笔记之九十六——本地Data Persistence总结笔记

*****阅读完此文,大概需要5分钟******

2023-02-18 20:34:57 771

原创 iOS开发笔记之九十五——Swift中的常见高阶函数及实现

本文将介绍这些函数的原理和用法。map是一种常见的高阶函数,它可以将一个集合中的每个元素映射到另一个集合中,然后返回一个新的集合。filter是一种常见的高阶函数,它可以从一个集合中过滤出符合条件的元素,然后返回一个新的集合。在这个例子中,我们将一个包含三个数组的数组扁平化成一个单一的数组,然后将结果存储在一个新的数组中。在这个例子中,我们将原始的数组中的所有偶数元素过滤出来,然后将结果存储在一个新的数组中。在这个例子中,我们将原始的数组中的每个元素乘以2,然后将结果存储在一个新的数组中。

2023-02-14 14:51:29 366

原创 Python开发笔记之三——IncompleteRead的错误解决

在执行一个爬虫程序时,出现了IncompleteRead的报错:IncompleteRead: IncompleteRead(196171 bytes read, 209626 more expected)download代码如下:

2022-12-02 16:35:05 4690 1

原创 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 4565

原创 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 2977

原创 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 3338

原创 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 7935

原创 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 11520 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 11391 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 6035

原创 iOS开发笔记之八十七——Swift中的值类型

*****阅读完此文,大概需要3分钟******这一概念在OC中就已经存在。Struct可以想像class一样定义属性、方法,可以遵循协议,支持扩展等。一、值类型(struct)与引用类型(class)的不同点1、内存管理方式不同,值类型一般分配在栈上,引用类型一般分配在堆上。这就意味着引用类型分配与释放将会是个复杂的过程,值类型一般没有析构方法;2、引用类型有丰富的对象行为,可以继承,被多个所有者同时持有。将一个引用赋值给一个新的变量或者传递给一个函数的时候,它们都指向同一个实例。3、

2021-08-06 18:44:13 13142

原创 iOS开发笔记之八十六——组件化Pod支持多源配置

一、背景一个组件化的Pod代码仓库,常常会被多个业务场景使用,但是不同业务的场景需求不同,需要的代码也不同,为了更加灵活地支持多种场景,常常会采取以下两种办法:(1)继续细化拆分多个Pod(2)使用subspec方式进行代码管理。目前这两种方式都有它的弊端。第一种,继续细化拆分多个Pod如上图,原来的一个Pod要拆分四个“物理”Pod,如果继续细化拆分多个Pod,除了会导致过多的Pod产生,会管理越来越多的依赖关系。第二种,使用subspec方式进行代码管理sub..

2021-08-03 11:37:07 5830 3

原创 iOS开发笔记之八十五——带悬停效果页面的搭建方案总结

一、背景上图为大众点评App首页带有悬停效果的页面是App中最为常见的页面了,几乎任意一款主流app都会有这种页面。这种页面要求整个页面可以滑动,当滑倒一定高度时,要求某一部分做悬停,然后开始滑动下部的列表;这种页面我在业务中不止一次碰到,因为每次碰到都会因为调试花费较多时间;与此同时,这个页面框架较为复杂,不太好抽象出框架下沉,所以特意整理输出了一些方案,供大家参考,以便再碰到时,可以快速搭建这种页面;二、搭建方案这种页面方案不是唯一的,目前把自己开发中调研过的集中方案介绍一下,每..

2021-07-28 16:11:43 13807

原创 完美程序员的十种特质(转)

这是在我刚毕业时收藏的一篇文章,自己一直把它放在我的电脑桌面上,曾有段时间几乎每天都会看一篇,以此来激励自己,最近打开老电脑,再次看到这些文字,已经在这个行业摸打滚爬了7年 多了,感慨了许多,不知道自己做到了多少,这次发出来,与你我共勉。完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:  1. 才智非凡 - 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力

2021-06-29 19:32:18 4852 1

原创 iOS开发笔记之八十四——OC代码自动格式化的探究

一、背景代码风格人各有异,而且开发中复制粘贴的代码也很多,自己虽然常常开发后会敲一下快捷键control+i(Editor-Structure-Re-Indent),但是还是会忘记;所以想着是不是可以有一套自动化工具,可以敲个脚本就把代码给格式化了(至少可以把缩进给解决了);下面是我调研的几种思路和方案,它们主要是:Control+i的命令化(不可行或者说没搞定) 利用Vim的格式化功能(可行,不是很推荐) Clang-format的格式化代码功能(可行,推荐此种)二、利用Vim的格...

2021-04-13 19:44:20 13867

原创 iOS开发笔记之八十三——iOS面试总结《三》之一道看似简单的面试题

******阅读完此文,大概需要3分钟******一、前言之前一次面试中,一个面试官在几乎面试到最后时,“漫不经心”地抛给了我一道题目:一个整型变量起始值是0,两个线程分别对它做+1操作100次,最终的值是多少?我第一反应时,是不是面试官最后没有题目问了,随心的问了一句,后来我才发现,这是一道看起来很简单的题目,其实充满了坑坑洼洼的题目,他对面试者的知识考查以及反应能力都有考察到。二、解题:面试官题目描述给的不多,目前只有:“整型变量i=0”、“两个线程”、“分别100次的+1操作”

2021-04-12 19:37:30 12291

原创 一款简易的git分支清理工具branchClean

一、背景一个项目久了,乱七八糟的分支就会很多,留下大量的无用分支。特意写了个小脚本用来批量清理分支。为了防止可以顺利运行脚本,故意没有用python或ruby去写,改用了shell脚本,便于直接运行。二、脚本使用执行sh branchClean.sh --help或者sh branchClean.sh -h如下:➜ MDProject git:(master) ✗ sh branchClean.sh --help 这是一个git分支清理工具,默认包含: '

2021-04-08 22:30:57 12846

原创 iOS开发笔记之八十二——2021 iOS面试总结《二》之进击篇

继上次写的2020 iOS面试总结《一》已经过去很久了,在这段时间内不断有人给我私信,问我为啥没有第二部了,主要是入职了新公司后工作比较繁忙,加上自己比较懒,一直没有继续写了,前阵子打开公众号发现,突然一下子多了那么人关注,令我有点意外,决定继续写下去。这篇文章,我主要介绍我在面试过程中如何进行的准备、要不要找猎头等这些方面进行介绍。...

2021-03-27 13:24:07 12929

原创 iOS开发笔记之八十一——2020 iOS面试总结《一》之干货篇

******阅读完此文,大概需要5分钟******这是我毕业之后第三次开始找工作了,适逢2019年底,我清楚地知道,iOS开发已经不是很景气了,尽管自己有名校以及大厂背景,但是自己一点都没有把握,自己上一份工作是小厂,每天都很焦虑,知道后面形势不好,不想自己陷入被动的局面,所以自己裸辞全面投入了面试准备,目标也很明确,进稳定的大厂。现在目标已经达成,我想分两篇文章来描述这个过程,留给还在路上的朋友。这一篇文章,我主要把面试的一些题目,整理了一下发了出来,都是自己亲身经历的,由于时间有点久了,所以有些信息

2020-07-12 22:42:20 12537

原创 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 12805

原创 iOS开发笔记之七十九——读写线程锁介绍(一)

一、读写锁在多线程环境下,我们经常会遇到读写同步的问题。常见的做法就是将读写做成互斥操作,但是这样会降低读写性能。通常情况下我们希望读操作之间是不互斥的,这个时候就需要用到读写锁了。简单来说,读写锁要做的就是保证:读与读不互斥 读与写互斥 写与写互斥二、GCD提供的读写锁GCD的并发队列有一个Barrier Block的概念,关于Barrier Block,Apple给出的解释如...

2019-11-26 20:52:43 11661

原创 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 1469

原创 iOS开发笔记之七十七——关于UIWindow,你需要知道这些

一、基本特性1、UIWindow是一种UIView,但是它是所有用户界面的最顶层背景View,不同于普通的View,它具有事件(Event)的分发能力,是响应链的开始的起点。所以,当我们的应用启动时,我们须要手动提供一个main window给我们的应用。当然,如果你的项目是基于Storyboards的,Storyboards在创建时默认会提供window;2、window的显示需要通过提...

2018-09-19 16:46:02 10577

原创 iOS开发笔记之七十六——轻量级组件化路由方案MDPageMaster(二)

******阅读完此文,大概需要20分钟******一、项目源码XYPageMaster是为了实现VivaVideo家族产品组件化的轻量级Router解决方案,有了它业务页面之间的跳转不在相互依赖,在业务项目之间解耦起到重要作用。在开发过程中,XYPageMaster参考了原大众点评App的路由方案,同时也调研了市场上主流的几种Router方案,它的源码地址:https://github....

2018-09-01 14:51:00 12557

原创 iOS开发笔记之七十五——轻量级组件化路由方案MDPageMaster(一)

******阅读完此文,大概需要15分钟******一、项目背景一套完备的路由方案是推进VivaVideo产品的组件化进程前提,为了能够为VideoVideo量身定做一套适合自己的路由方案,我做了一定的调研分析,我特意找了市场几款主流的路由方案进行简单的分析比对,希望可以集各家所长,它们有JLRouter、MGJRouter、CTMediator等,分析的比较浅陋,如有不准确的地方,可以及...

2018-09-01 14:15:38 10935

原创 iOS开发笔记之七十四——FRP与RAC进阶篇(数据黑白板ReactiveDataBoard的介绍)

******阅读完此文,大概需要30分钟******一、简介ReactiveDataBoard是一款已经比较成熟的基于RAC的响应式编程组件,它主要用来实现任意模块之间的数据通讯,它可以替代原生的Notification、KVO,delegate、NSUserdefault等数值传递方式。因为它除了可以实时传递数据,比起Notification、KVO等,实现相同的功能,ReactiveD...

2018-08-19 20:17:06 12591

原创 iOS开发笔记之七十三——基于状态机的页面构建方案

******阅读完此文,大概需要20分钟******一、简介在美团点评时,页面基本都是列表页、详情页这类页面,所以以UIScollView/UITableView这类可以进行信息平铺的手段搭建页面为主。我之前也输出过这种页面的一种方案https://blog.csdn.net/lizitao/article/details/72803196,这种基于模块化,可以横向或者纵向平铺展示的方案还...

2018-07-15 18:44:56 10790 1

原创 iOS开发笔记之七十二——一种轻量级的缓存方案MDEasyCache

******阅读完此文,大概需要5分钟******一、简介有人可能会问,无论是图片缓存还是文件缓存都有比较成熟的方案了,例如SDImageCache、TMCache/PinCache,为什么还要自己弄一套,其实这也是考虑到产品诉求的,我们公司对产品的轻量化有较高的要求。我们常常为了某个单一功能就会引入一个开源库进来,大部分代码逻辑用不到,而且一旦开源库出了bug,维护起来比较麻烦。所以在条...

2018-06-21 19:47:38 4949

原创 iOS开发笔记之七十一——发布私有库到Github

******阅读完此文,大概需要10分钟******其实这种过程不复杂,但是每次都会忘记那几个命令行,所以决定借此文档进行一次归档记录,也希望能帮到读者。下面以项目MDCommonKit为例子:1、在Github上repository MDCommonKit并clone到本地;2、再找个地方,mkdirprojectName然后cd进去,执行如下命令,并按照如下进行选择:pod...

2018-06-18 12:03:03 7943

原创 为什么你会感觉程序员的情商普遍偏低?

******阅读完此文,大概需要5分钟******不知道你是否潜意识里会有以下认同感:1、善于表达、甚至能够滔滔不绝、甜言蜜语的人,一定是情商高的;2、不善言语表达的人、甚至有点孤僻的人,一定是情商低的;要弄明白这些问题,首先我们需要弄明白到底什么是情商。我记得在中学时,有一位老师这样说过,“人的精力是有限的,人与人之间的关系越复杂,人与书本之间的关系就会越趋于简...

2018-02-14 22:47:39 8105 3

原创 iOS开发笔记之七十——如何访问对象的私有方法和变量

Objective-C对象的变量和方法本身其实没有绝对的私有和公有之分。我们可以利用OC的runtime动态特性,访问对象的方法和属性。我们可以结合以下实例方法演示如下:一、我们构造父类MDFather如下:.h文件如下#import @interface MDFather : [email protected]文件如下:#import "MDFather.h

2018-02-04 13:07:52 4383

原创 iOS开发笔记之六十九——FRP与RAC介绍(二)

******阅读完此文,大概需要20分钟******本篇章主要以介绍RAC的常见操作、常见使用场景、双向绑定、RACCommd等相关内容。一、RACSignal信号的过滤、筛选、合并等常见操作示例代码如下:- (void)coldSignalTest{ //信号的创建 RACSignal *signal = [RACSignal createSignal:^RA...

2018-01-08 10:07:37 11592

原创 iOS开发笔记之六十八——FRP与RAC介绍(一)

******阅读完此文,大概需要60分钟******一、FRP的概念RAC(ReactiveCocoa)是由GitHub团队开发的一套基于Cocoa的FRP框架。提起FRP,即Functional Reactive Programming(函数式响应式编程),几乎在每个领域都有广泛的应用,例如android或者后端开发中有RxJava,尤其是在前端的领域中(react、ajax、v

2017-12-05 16:37:34 11551 1

原创 iOS开发笔记之六十七——Category使用过程中的一些注意事项

******阅读完此文,大概需要10分钟******一、不同Category中同名方法的加载与执行顺序1、先来看看如下的例子,针对TestClass类有两个Category分别为TestClass+A、TestClass+B,类结构如下:而打印结果始终如下:2、Category的方法执行原理

2017-08-22 10:57:32 8358

原创 iOS开发笔记之六十六——基于Json的页面动态化方案

******阅读完此文,大概需要15分钟******一、需求场景iOS的动态化一直是工程师们不断致力的方向,尽管JSPatch等动态化方案被苹果否掉之后,类似阿里Weex、点评Picasso这种方案开始成为动态化的另一个重要方向,它们都是通过在App端实现一套JS的引擎,解析js生成Native页面的原理方式,从而达到页面动态化的目的,如果需要复杂的交互App端还需要依赖jscore,基本...

2017-07-09 15:09:33 13534 2

原创 iOS开发笔记之六十五——两种截屏方案的对比

******阅读完此文,大概需要3分钟******业务开发中常常需要截屏生成一张UIView的Image,我们前期就做了一个需要对UIView进行截屏的需求,iOS上截屏的方案有多种,因为我们需要控制图片的分辨率,防止图片过大,所以我们采取了两种方案对UIView进行截屏;第一种:renderInContext方式,主要代码如下:- (UIImage *)convertViewToIm

2017-07-09 11:26:31 13428

原创 iOS开发笔记之六十四——基于UIView模块化组件方案

******阅读完此文,大概需要20分钟******一、方案背景有这么一个需求,需要做一个展示信息详情页,内容可能会比较多,超过一屏,最终还需要生成一张完整的详情页截图(UIImage), 如果我们直接基于UIScrollView(UITableView)去截屏,只会生成UIScrollView的frame的size大小的图片,不能生成contentSize大小的图片,所以,我们需要基...

2017-05-29 18:10:15 12070

ios搜索功能的实现源码

ios搜索功能的实例代码,可以直接编译运行的。在现有的表视图下,实现搜索功能。

2014-02-06

企业级ios应用开发实践14

企业级ios应用开发实践源码,请大家参考,谢谢。

2013-12-19

企业级ios应用开发实践5

企业级ios应用开发实践源码第5章,希望大家参考,谢谢。

2013-12-19

企业级ios应用开发实战11

这是企业级ios应用开发实践这本书的源码的第11章,大家可以参考下。

2013-12-19

Xcode高级图形编程实例6

Xcode高级图形编程的实例,就是企业级ios应用开发实践这本书的第六章源码。

2013-12-18

Xcode下饼图、柱状图、折线图的绘制

在Xcode下绘制一些图形,有饼图,柱状图、折线图等,可以直接运行的源码。

2013-12-17

算法导论第二版课后答案(完全版)

这份答案凝聚了我们很多人的心血,我们经过一学期的搜索和整理,最终搜集到了目前为止这份最全面的算法导论答案,这份答案也给我们带来了巨大的帮助。希望可以帮助要下载的同学。

2011-12-28

Android简介

了解各种手机操作系统的特点 了解开放手机联盟的目的、组成和性质 了解Android平台的发展历史 掌握Android的特征 掌握Android平台的体系结构

2011-11-14

学生考试系统 asp + access

学生在线考试系统,是我精心整理过的,数据库是access,采用的是dreamweaver 8.0开发工具的,简单易于操作。

2011-06-26

学生作业提交系统ASP+access数据库

开发一个简易的作业提交系统,旨在该系统能完成教师和学生的相关功能。 系统要求: 1. 登录,只允许选课的同学和教师登录。 2. 教师可以发布作业。 3. 学生应该在规定的时间里提交作业。 4. 教师可以下载学生的作业到本地硬盘进行批改,批改过后还可以给相应的同学打分。(可不可以把大家的作业一次下载到本地硬盘) 5. 统计: A. 帮助教师统计每次作业的成绩和作业的提交情况 B. 统计整个学期每个学生作业的提交情况。

2011-05-19

编译原理实验代码 C语言

里面有我整过的实验代码,都有测试数据,具体有Chomsky文法判断、DFA最小化、NFA到DFA的转化、算符优先文法、LL(1)、LR(1)文法的实现等。

2010-06-22

微型计算机原理与接口技术第4版课后答案

这是周和琴、吴秀清编著的第四版的微型计算机原理与接口技术教材的课后习题解答,中国科学技术大学出版社出的。很全面的,欢迎大家来下载。

2010-06-14

操作系统+首次适应算法实现内存的分配与回收

里面有实验题目,实验流程图,实验代码,运行结果,测试用例,很全面的。

2010-06-11

操作系统+银行家算法模拟

里面有实验题目,实验报告,实验流程图,实验代码,运行结果,测试用例,很全面的。

2010-06-11

数据结构各章节实验代码(C语言)

这是我曾经整理的代码,都运行过了,可以的。

2010-06-10

编译原理 Chomsky文法的判断.

这个是编译原理的Chomsky文法的判断,没有采用手动输入,只是将终结符和非终结符固定在代码中了,使用者可以根据使用,适当改变,不难的.

2010-05-18

用C语言实现蟑螂漫步

用C语言做的,使用了c语言的画图函数。新手上路,多多指教!

2010-05-03

好友通讯录java_Acess数据库.rar

这是一个用java语言书写的程序,使用的是Acess数据库。初次上传,多多指教1

2010-05-03

空空如也

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

TA关注的人

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