自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS - RunLoop 基本原理介绍

fdsf

2023-04-25 14:37:34 563

原创 iOS - 内存管理

objective-c 的内存分布,内存管理的原理,内存泄漏问题

2023-04-23 16:55:31 583

原创 Swift 指针 & 内存管理

Swift 指针 & 内存管理

2023-02-24 15:30:09 401

原创 Swift 属性

Swift 属性

2023-02-23 18:36:04 223

原创 Swift 类与结构体

Swift 类与结构体

2023-02-23 17:15:03 263

原创 iOS - 性能优化

CPU和GPU在屏幕成像的过程中,CPU和GPU起着至关重要的作用CPU(Central Processing Unit,中央处理器)对象的创建和销毁,对象属性的调整,布局计算,文本的计算和排版,图片的格式转换和解码,图像的绘制(Core Graphics)GPU(Graphics Processing Unit,图形处理器)纹理的渲染在iOS中式双缓冲机制,有前帧缓存,后帧缓存屏幕成像原理卡顿产生的原因垂直同步信号过来,CPU/GPU还没有渲染完成,这将会导致出现卡顿的现象。卡顿

2020-10-03 17:50:06 157

原创 iOS - 多线程

iOS 多线程

2020-10-02 20:58:39 318

原创 iOS - Runtime

fds fds

2020-09-09 18:14:49 144

原创 iOS - Block原理

Block 底层原理

2020-08-18 18:08:01 519

原创 iOS - Category本质

iOS 分类原理,应用

2020-08-17 17:55:51 253

原创 iOS - KVO/KVC窥探

iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)1> 利用runtimeAPI动态生成一个子类,并且让instance对象的isa指针指向这个全新的子类2> 当修改instance对象的属性时,会调用Foundation的_NSSetXXXValueAndNotify函数a. willChangeValueForKey:b. 父类原来的setterc. didChangeValueForKey:3> 内部会触发监听器(Oberser)的监听方法(observe.

2020-07-22 15:50:32 136

原创 iOS - OC对象的本质

Apple 源码网址 - https://opensource.apple.com/tarballs/A.一个NSObject对象占用多少内存?系统分配了16个字节给NSObject对象(通过malloc_size函数获取)但NSObject对象内部只使用了8个字节的空间(64bit坏境下,可通过class_getInstanceSize函数获取)```NSObject *obj = [[NSObject alloc] init];// 获得NSObject实例对象的成员变量所占用的大小 &g

2020-07-22 10:46:08 185

原创 App如何避免网络安全隐患

随着现在很多iOS的APP没有做任何的安全防范措施,导致存在很多安全隐患和事故,今天我们从以下几个方面来聊聊开发人员平时怎么做才更安全。一、网络方面用抓包工具可以抓取手机通信接口的数据。以Charles为例,用Charles可以获取http的所有明文数据,配置好它的证书后就可以模拟中间人攻击,获取https加密前的明文数据。1.1 中间人攻击先简要地说下什么是中间人攻击:①客户端:“我是客户端,给我你的公钥” -> 服务端(被中间人截获)。所以现在是:客户端->中间人②然后中间

2020-06-17 14:46:24 786

原创 iOS 项目文件、库大小监控

背景回归脚本中需要用到Bash Shell版本是4.0以上确认系统中使用的 Shell 是 bash$ echo $SHELL/bin/bash查看系统中 Bash Shell 的版本(方法一)$ bash --versionGNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)Copyright © 2005 Free Software Foundation, Inc.查看系统中 Bash Shell 的版本(方法二)$

2020-05-27 11:50:37 712

原创 iOS 长截图

背景项目中遇到对视图进行截图,视图中部分文本内容返回的格式是Html,用WKWebView对Html进行加载展示后对整块视图进行截图WKWebView出现部分内容展示空白。// 截图 UIGraphicsBeginImageContextWithOptions(self.headerView.frame.size, NO, [UIScreen mainScreen].scale); [self.headerView.layer renderInContext:UIGraphicsGet

2020-05-25 15:26:01 587

原创 iOS - 保存图片至系统相册

iOS - 保存图片至系统相册背景保存图像至相册方法UIImageWriteToSavedPhotosAlbum()AssetsLibrary框架 (==iOS 4.0被引入、iOS 9.0被废弃==)Photos框架相册图片展示问题插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少...

2020-05-25 14:14:34 3512 1

原创 iOS 问题整理

网络异常 -1005多工程打发布包问题上传iTunes我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区...

2020-05-25 14:12:34 1539

原创 CocoaPods 卸载与安装

CocoaPods应该是iOS最常用第三方类库管理工具,绝大部分有名的开源类库,都支持CocoaPods,在我们iOS应用当中基本都使用到了CocoaPods来管理第三方库,sudo gem install cocoapods --version 0.39.0

2020-05-25 14:05:56 621

原创 iOS 微信支付SDK -canOpenURL: failed for URL: "weixinULAPI://" - error: "This app is not allowed to query

微信SDK1.8.6或以上版本都需要设置通用链接,按照流程下来一切都没问题,但是注册时提示(图1)问题,尝试后发现设置白名单的时候设置成了字典类型,导致微信获取不到的原因,只要设置成Array就可以了。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200509124005249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNz.

2020-05-09 12:49:42 6618

原创 MBProgressHUD使用问题处理

问题背景iOS10系统发现[MBProgressHUD showLoadingWithMessage:@"" toView:[UIApplication sharedApplication].keyWindow]多次调用加载框由于异步处理数据回调时长不一致,出现了加载框一直不消失,神奇的是,在iOS12、13上尽然没有出现加载框不消失,一切都那么完美,后发现在MBProgressHUD库 (图1...

2020-04-21 16:20:59 492

原创 swift - 直播动效点赞

动画单元个体随机产出、、、 rCount = Int(arc4random() % 5 + 3) //随机个数 for _ in 0...rCount { let rTime: Double = (Double(arc4random() % 100)/100.0) + 0.5 DispatchQueue.main.asyncAfter(deadli...

2020-03-12 12:40:22 472

原创 GitHub - 提交超过100M的大文件

GitHub提交库文件的时候难免会遇到单个文件大小超级大的,GitHub会对单个文件大小超过100M的进行限制,但是并不是不能提交,GitHub还是给了另外的一种方式:Git Large File Storage扩展库1.先brew install git-lfs安装2.再在已添加跟踪项目根文件下git lfs install就能生成一个.gitattributes文件3.选择希望git...

2019-10-31 10:28:57 532

原创 GitHub - 上传库问题处理

上传至GitHubGitHub创建一个New Repositories![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030111707609.png![在这里插入图片描述](https://img-blog.csdnimg.cn/20191030112031624.png通过cd进入到项目工程文件夹下git initgit add READM...

2019-10-30 11:40:39 103

原创 iOS-点击测试工具

背景在开发测试中,有时候会出现点击区域面积小的按钮,但是手指指尖触控区域比较大,点击的时候并不能直观的展示是否点击到控件,所以为了方便开发与测试,开发此工具。触控展示根据响应链,所有的点击事件都会经过窗口 window -> UIApplication delegate,再回传到window视图进行分发。所以可以通过runtime的方法交换对window的- (void)sendEve...

2019-10-28 18:16:10 247

原创 iOS - 网络流量监控

背景应用程序中,聊得最多的话题就是网络,毕竟网络是前端和后端数据传输的核心,那怎么去判断网络的好坏呢,那就是通过网速,网速受到很多方面的影响,例如:基站数、发起通讯数目、硬件性能等等。在开发测试中,菊花等待框并不能直观的展示出来网速的快慢,最直观的那就只有数字大小。网络端口信息C语言 ==getifaddrs()==函数,它可以查找到系统所有的网络接口的信息,包括以太网卡接口和回环接口等...

2019-10-28 17:54:46 1047

原创 Linux系统 FreeType 矢量显示库安装

Freetype库是一个开源的字体引擎,支持多种字符集编码(utf-8等).一、下载链接FreeType库链接:https://sourceforge.net/projects/freetype/files/latest/downloadFreeType说明文档链接:https://sourceforge.net/projects/freetype/files/freetype-docs/...

2019-10-17 15:56:07 274

python webScraping 脚本

python webScraping 脚本

2023-08-09

block源码文件

iOS block源码文件,可用于底层分析block的基本实现以及运行机制。

2019-04-11

空空如也

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

TA关注的人

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