自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (19)
  • 收藏
  • 关注

原创 杂谈

      北京最近真的是太冷了,没承受住严寒的拷问,感冒了!学习的心情和状态完全没有了,索性放松一下,调整下状态,之前一直写的都是技术博客,今天来做回文青。       生病是难受的!状态是这样的:早一粒晚一粒,一粒接一粒,刚喷嚏又喷嚏,喷嚏连喷嚏!感冒两天,一包新开的纸抽见底,速度之快,令人咋舌!脑袋一直晕乎乎的,走路就像踩海绵似的!在暖气屋里焐个大羽绒服依旧会有发抖的时候,喝一杯热水之后...

2018-12-28 11:28:27 184

原创 组件化---组件代码库的分层并用.h文件收集代码库中的文件

1、之前写的组件代码库结构都比较简单,但实际在进行项目组件化过程中,工程的结构就比较复杂了,因此涉及到了对文件的分层,很多文章都以subsepc的方式对组件文件分层,其实这样做太麻烦,而且podspec容易出问题,我在组件化过程中也试过这种方法,不好使。这里介绍一个简单方法:将组件库的podspec文件s.source_files = 'YHTestSevenEight/Classes/**/...

2018-12-21 14:47:40 297

原创 组件化---创建本地测试组件代码库

组件化时,最终代码库是要以远程私有库的方式体现。但是由于需要组件化的项目一般都已经小有规模,在组件化过程中肯定要不断修改调试,所以,如果组件库在开发者调试阶段就push到远程仓库,对于组件库代码的修改及测试都非常麻烦(只要代码有修改就要push到远程;测试此远程组件库的时候又需要将此组件库pod install本地测试工程中测试,当网速慢的时候你懂的!而且我们这还有流量监控,曾经因为更新了xcod...

2018-12-20 17:42:07 651

原创 组件化---为私有库添加依赖库

场景描述:创建一个私有远程库名为YHTestFive,这个库依赖于两个远程仓库,一个是我自己创建的码云上的私有仓库YHTestBaseFive;另一个是SDWebImage;按正常的顺序https://blog.csdn.net/denggun12345/article/details/84989492将YHTestFive设置为远程私有库,需要注意以下几点:1》podspec文件要加一项...

2018-12-19 14:28:07 3052

原创 组件化---命令行报错[!] The repo `XXX` at `../../../../.cocoapods/repos/XXX` is not clean

在提交本地podspec到远程私有索引库YHTestOneSpecGroup时,执行pod repo push YHTestOneSpecGroup YHTestBaseFive.podspec --allow-warnings命令时报错:[!] The repo `YHTestOneSpecGroup` at `../../../../.cocoapods/repos/YHTestOneSp...

2018-12-18 16:23:16 2847 2

原创 组件化---私有库中的图片和xib

私有库中出现以下情况要注意了1、加载图片:例如YHTestOne1》场景:在UIViewController上用纯代码方式添加一个按钮用[headBtn setImage:[UIImage imageNamed:@"Enterprise_bots_woyaotikuan"] forState:UIControlStateNormal]给vc的button加载图片时可以的。2》E...

2018-12-14 18:51:20 1377

原创 组件化---创建远程私有代码库

一、创建索引库:存放spec文件,这里创建成私有的 1、在码云上创建私有索引库YHTestOneSpecGroup:设置为私有库 2、添加自己的本地远程索引库:pod repo add YHTestOneSpecGroup https://gitee.com/denggun/YHTestOneSpecGroup.git 3、cd到 ~/.cocoapods/repos下查看...

2018-12-13 17:41:08 588 1

原创 组件化---创建组件工程

使用Cocoapods命令直接创建工程:1、命令:pod lib create YHTestOne2、终端出现多个问题,按项目需要回答What platform do you want to use?? [ iOS / macOS ] 选择ios,直接回车默认选择第一个What language do you want to use?? [ Swift / ObjC ]Wou...

2018-12-13 15:26:02 376

桥接模式-继承-iOS

桥接模式-继承-iOS

2023-07-28

桥接模式-代理-iOS

桥接模式-代理-iOS

2023-07-28

策略模式的实例代码demo

策略模式的实例代码demo

2023-07-28

责任链VS金融登录校验

对于责任链的思考,对于金融登录校验的思考

2023-07-26

AScheme跳转到BScheme配置

AScheme跳转到BScheme配置 注:截图四张,只是从AScheme跳转到BScheme的配置;但是两个工程的代码是AScheme跳转到BScheme,并支持了从BScheme跳转到AScheme

2022-02-21

ios解析crash示例文件上传

ios解析crash示例文件上传

2022-02-15

YHELKitSDK-master.zip

ios加解密 AES:128/192/256; RSA; Base64;MD5

2022-01-18

yfc.zip 证书测试APNS

yfc.zip 证书测试APNS

2021-08-10

fastLane.zip

ios单工程自动打包,简单写下我使用fastlane的过程,及遇到的问题,希望自己下次在用到fastlane的时候能迅速避坑,希望也能帮助在看文章的你

2019-11-09

cocoapodsAndFramework

把组件打包成静态framework,分别做成sdk拖拽到本地工程及将此framework进行cocoapods管理使用的异同,两种方式图片和xib的取出路径不同

2019-04-23

深拷贝与浅拷贝;copy与mutableCopy;容器类型的深拷贝;copy和strong;

1、只有NS类型调用copy方法才是浅拷贝,其他的情况全是深拷贝 2、容器类调用copy或mutableCopy能出现的深拷贝的情况下,只是容器的深拷贝,而非容器内元素的深拷贝 3、无论是声明NSString还是NSMutableString类型的属性时,我们希望此属性被赋值为NSMutableString类型的字符串后,此属性不会因这个可变类型字符串的改变而改变(这也是多数情况下的用法),那就用copy修饰属性

2018-11-06

respondsToSelector与instancesRespondToSelector

1、二者的作用相同:都是判断某个类是否实现了某方法(注意:是是否实现某方法,必须在.m里写了{}的方法,只在.h里声明了不算) 2、有实际意义的组合只有3种 @1   类 + instancesRespondToSelector + 实例方法 yes =  类是否实现了某实例方法 @2  类 + respondsToSelector + 类方法    yes = 类是否实现了某类方法 @3  实例 respondsToSelector 实例方法 yes  =  类是否实现了某实例方法 且@1和@3的作用相同

2018-10-31

UIWebView原生与H5交互

UIWebView原生与H5交互,pre;confirm;等包含三个H5页面跳转的交互demo

2018-10-30

WKWebView原生与H5交互

为防止造成混淆,这里只写WKWebView原生与H5交互关键代码

2018-10-30

h5余原生交互

1、H5调原生:1》通过代理调原生 2》block调原生方法 2、javaScriptCore版原生调H5 1》用evaluateScript方法直接调用 2》objectForKeyedSubscript + callWithArguments 方法调用

2018-10-30

dispatch_barrier_(a)sync

异步和同步的栅栏函数都有以下特点: 1、通过dispatch_barrier_(a)sync添加的block会等待前边所有的block执行完(不包括回调)才执行。 2、在其后添加的block会在dispatch_barrier_(a)sync添加的block执行完之后(不包括回调)再执行; 不同点: 1、dispatch_barrier_sync:同步栅栏函数在原线程中执行block,不开辟新线程;在将任务插入到queue的时候,       dispatch_barrier_sync需要等待自己的任务结束之后才会继续程序,然后插入被写在它后面的任务。 2、dispatch_barrier_async:异步栅栏函数会开辟新线程执行block;ispatch_barrier_async将自己的任务插入到queue之后,不会等待自己的任务结束,它会继续把后面的任务插入到queue。

2018-10-25

gcd处理ios多请求常用的几种情况

//1、进某页面要发四个请求,四个请求之间无影响 //2、进某页面要发四个请求,四个请求之间无影响,等所有请求回来刷新界面 //3、进某页面要发四个请求,其中某个请求的请求参数是另一个请求结果的返回字段(请求2依赖于请求1的回调结果) //4、进某页面要发四个请求,其中某个请求的两个请求参数是另两个请求结果分别返回的两个字段(请求3依赖请求1、2的回调结果) //5、进某页面要发四个请求,请求3依赖请求2的回调结果,请求2依赖于请求1的回调结果 //6、进某页面要发100个请求

2018-10-24

dispatch_semaphore two

ios开发GCD的dispatch_semaphore:1、常用函数及作用 2、信号量的用途:1》同步不同线程 2》当做锁来使用:3》控制同时执行的线程数:

2018-10-22

dispatch_semaphore

//信号量用途1://两个资源,三个线程执行;设定信号量值为2,先执行两个线程,等执行完一个,才会继续执行下一个,保证同一时间执行的线程不超过两个,保证线程的最大并发数 //信号量用途2://创建信号量的时候当锁使,保证wait和signal之间只有一个线程能进去 //信号量用途3:同步不同线程的操作

2018-10-19

dispatch_group包含wait包含forever时长

两种方式都是模拟任务block内为异步操作的情况,方式一先执行的dispatch_group_notify里的代码,后执行的dispatch_group_async里的任务代码,这与我们的初衷相违背。如果任务block内为同步操作时,则无论哪种方式都不会出现这种状况。这也是dispatch_group的一个坑人的地方。我们在使用dispatch_group时一般都是想异步执行任务,所以,一定要注意这个坑

2018-10-18

dispatch_group包含wait

以上两种方式都是模拟任务block内为异步操作的情况,方式一先执行的dispatch_group_notify里的代码,后执行的dispatch_group_async里的任务代码,这与我们的初衷相违背。如果任务block内为同步操作时,则无论哪种方式都不会出现这种状况。这也是dispatch_group的一个坑人的地方。我们在使用dispatch_group时一般都是想异步执行任务,所以,一定要注意这个坑

2018-10-18

dispatch_group

两种方式都是模拟任务block内为异步操作的情况,方式一先执行的dispatch_group_notify里的代码,后执行的dispatch_group_async里的任务代码,这与我们的初衷相违背。如果任务block内为同步操作时,则无论哪种方式都不会出现这种状况。这也是dispatch_group的一个坑人的地方。我们在使用dispatch_group时一般都是想异步执行任务,所以,一定要注意这个坑

2018-10-18

NSPredicate

NSPredicate的使用总结,OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词语句,就可以从数组中过滤出我们想要的数据

2018-08-17

空空如也

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

TA关注的人

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