DM Blog

Thinking will not overcome fear but action will.

iOS matrix

技术成长之路

iOS matrix matrix介绍 Matrix 是一款微信研发并日常使用的应用性能接入框架,支持iOS, macOS和Android。 Matrix 通过接入各种性能监控方案,对性能监控项的异常数据进行采集和分析,输出相应的问题分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。 maxtrix github传送门 maxtrix 码云传送门 matrix内部实现 当前工具...

从使用到了解block底层原理(二)

技术成长之路

上篇文章中主要通过简单的demo展示了block的使用场景,本篇将基于上篇文章iOS 技术篇:从使用到了解block底层原理 (一)进一步了解block底层的实现原理。 block作为一种”带有自动变量值的匿名函数”,在实际编译时,我们无法转换成我们能够理解的源代码,但clang(LLVM编译器)具有转化为我们可读源代码的功能。终端输入如下命令行,可获取.cpp文件。 clang -rew...

从使用到了解block底层原理(-)

技术成长之路

1.概述 block : Object - C对于闭包的实现 . 闭包 = 一个函数(或是指向函数的指针) +该函数执行的外部的上下文变量(自由变量) 2.对block的理解 可以嵌套定义,定义 block 方法和定义函数方法相似 block可以定义在方法外部内部或外部 只有调用block时候 才会执行 { } 内的代码 本质是对象,使代码高聚合 3.block的使用方法 (1)无参数无返回...

category添加属性

技术成长之路

category添加属性 面试题 Category的实现原理,以及Category为什么只能加方法不能加属性。 Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗? load、initialize的区别,以及它们在category重写的时候的调用的次序。 官方文档 You use categories to define additio...

自定义导航或tab标签

技术成长之路

序言 在iOS项目开发时,我们经常用到的tab标签,可以用UISegmentedControl分段控件来实现,但由于UISegmentedControl的样式有限,往往不能满足我们项目多态的自定义样式。而自定义的tab可以根据自己项目的需求来设计。接下来就会根据我个人的项目需求用一些简单的方式来实现。如有欠缺,望各位积极提意见。 实现效果 实现功能 1.三种常用样式 2.三种主题色 3....

采用链式实现MBProgress弹窗的二次封装

技术成长之路

简述 ​ 在开发阶段,我们时常需要给用户展示提示语。因近期项目需要整改,趁此机会,做了基于MBProgress弹窗的二次封装。此次封装同时采用链式结构来重新修改了MBProgress的调用方式。 ​ 在封装之前需要提到一个链式编程思想。链式编程思想,我最初是从masonry框架中了解到的。这种思想不同于面向对象和面向过程,它的真正含义是将多个操作(多行代码)通过点号(.)链接在一起成...

贝塞尔曲线在项目中的常用方式

技术成长之路

贝塞尔曲线在项目中的常用方式 Ps:本文将结合在项目中的使用来做些简单的画图教学。 关于贝塞尔曲线: 贝塞尔曲线,主要用于二维图形应用程序中的数学曲线,曲线由起始点,终止点(也称锚点)和控制点组成,通过调整控制点,通过一定方式绘制的贝塞尔曲线形状会发生变化。 分类: 总体分类为:一阶贝塞尔曲线、二阶贝塞尔曲线、三阶贝塞尔曲线和多阶贝塞尔曲线。 一阶贝塞尔曲线: 二阶贝塞尔曲线...

NSPredicate 实现数据筛选

数据筛选

NSPredicate 实现数据筛选 一:基本语法 1.什么是NSPredicate apple官方文档这样写的: The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering...

我的个人博客成立了 2019

技术成长之路

我的个人博客成立了 <font color=#0099ff size=7 face=”黑体”>color=#0099ff size=72 face=”黑体”</font> <font color=#00ffff size=72>yanse00ffff</font> 我的个人博客成立了 gray $\color{#FF3030}{red}...