移动开发
iOS Runtime之KVC
Runtime系列导读
iOS Runtime之方法查找
iOS Runtime之方法替换
iOS Runtime之KVO
iOS Runtime之KVC
iOS Runtime之反射调用
简介
KVC是Key Value Coding的缩写,意思是键值编码。 在iOS中,提供了一种方法通过使用属性的名称(也就是Key)来间接访问对象属性的方法,这个方法可以不通过getter/setter方法
【建议收藏】17个XML布局小技巧
前言
我们开发时接触最多的就是xml布局了,还记得我们写Android的第一个Hello World吗,就是通过activity_main.xml显示出来的。
虽然xml写的很多,而且也没有什么技术难度,但是,这也往往是我们最容易忽略的地方,写xml不难,写出好的xml还是得下点功夫了。
什么算是好的xml布局呢,我认为核心有两点,一个是提升开发效率,另一个是提升app性能。围绕着这两点,我也精心
不可错过的一些 js小技巧
1. 获取指定范围内的随机整数:
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
2. 打乱数组顺序
let arr:[31,2,3,'排序','😄']
arr = arr.sort(() => 0.5 - Math.random())
// [ 3
swift Equatable
我来了,swift
定义
用于做值类型对比的协议。
适用范围
遵循Equatable的类型都可以使用==或是!=符号对比判断。这个类型包括struct/class/enum
实现原理
任何遵循Equatable的类型,都需要实现方法static func ==(lhs: Self, rhs: Self) -> Bool在这个方法内按照指定的值和值间对比关系返回true或是false,外部
iOS 三种画板实现方式
UIBezierPath,Quartz2D,OpenGLES
1. UIBezierPath
1 UIBezierPath
使用UIBezierPath可以创建基于矢量的路径,此类是Core Graphics框架关于路径的封装。使用此类可以定义简单的形状,如椭圆、矩形或者有多个直线和曲线段组成的形状等。
UIBezierPath是CGPathRef数据类型的封装。如果是基于矢量形状的路
史上最全的 IDEA Debug 调试技巧(超详细案例)
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。
所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容:
Debug开篇
基本用法&快捷键
变量查看
计算表达式
智能步入
断点条件设置
多线程调试
回
DownloadManager 使用
最近做SDK开发,有个简单的下载功能,为了方便及不增加第三方库,遂采用了系统的DownloadManager来处理下载任务。
官网的说明:
The download manager is a system service that handles long-running HTTP downloads. Clients may request that a URI be downloaded t
RunLoop最细详解
Runloop的实现机制
RunLoop 通过mach_msg()函数接收、发送消息。它的本质是调用函数 mach_msg_trap(),相当于是一 个系统调用,会触发内核状态切换。在用户态调用时会切换到内核态; 而内核态中内核实现了mach_msg()函数会完成实际的工作。
RunLoop基本作用
保持程序的不断运行
处理App中的各种事件,触摸事件,定时器事件
节省CPU的资源,提高程序
Netty线程模型相关概念知识
点击查看 官网
点击查看NIO相关的知识 Java - NIO网络编程
一、Netty 简介
Netty是一个高性能、高可扩展性的异步事件驱动的网络应用程序框架,它极大地简化了TCP和UDP客户端和服务器开发等网络编程。
Netty重要的四个内容
Reactor线程模型:一种高性能的多线程程序设计思路
Netty中自己定义的Channel概念:增强版的通道概念
ChannelPipelin