类、原类再看下isKindOfClass和isMemberOfClass
消息转发可以看这篇文章 原类 首先我们回顾下消息转发的这张图 总结如下: MyClass *my = [MyClass new]; my->isa // MyClass 对象的isa指向它的类 my->isa->isa // MyClass.metaClass 用来存储类方法的地方 my->isa->isa->isa // NSObje...
消息转发可以看这篇文章 原类 首先我们回顾下消息转发的这张图 总结如下: MyClass *my = [MyClass new]; my->isa // MyClass 对象的isa指向它的类 my->isa->isa // MyClass.metaClass 用来存储类方法的地方 my->isa->isa->isa // NSObje...
NSObject和NSTimer 先看两段代码,留下两个问题 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSLog(@"1"); ...
能否支持热更新 DSL语言 领域特定语言 domain specific language。 HTML 是 DSL 的一个典型,它是在 Web 应用上使用的语言,尽管 HTML 无法进行数字运算,但也不影响它在这方面的广泛应用。 而 GPL 则没有特定针对的领域,这种语言的设计者不可能知道这种语言会在什么领域被使用,更不清楚用户打算解决的问题是什么,因此 GPL 会被设计成可用于解决...
安装Mac开发运行环境 安装homebrew 安装git 配置gitlab 安装nvm 配置nvm 安装nodejs 安装npm相关工具 安装cli的XXX工具。后续的XXX都是指文章中的cli工具 安装VSCode 安装VSCode插件 中文语言包 Prettier ...
1. Swift调用OC的方法进行命名优化 - (void)testSomeClass:(id<SomeClass>)obj; - (void)testOtherClass:(id<OtherClass>)obj; 上面的OC方法在Swift中进行调用会合并成同一个 Class().test(_ obj:) 在Swift中会主动帮你进行重命名的优化,上面两...
协议Protocol的关联类型 参考文档 泛型和关联类型的区别 从泛型和关联类型的调用和实现两个方面对比来看: 关联类型:实现方指定类型,调用方不指定。当你实现一个使用关联类型的函数的时候,你需要填充对应的类型,所以你知道实际的类型。调用方不知道你具体采用的类型。 泛型:调用方指定类型,实现方不指定。当你实现一个使用泛型的函数,不需要知道调用方具体采用的类型。你可以使用约束...
响应式编程 “A unified, declarative API for processing values over time” 统一、声明式、为处理变化的值而生的 API。 Apple在iOS13中,引入了Combine。在之前业界比较有名的是ReactiveX系列的Swift版本RxSwift。响应式编程也叫申明式编程,和我们常用的指令式变成有很大区别。 响应式编...
上一篇文章讲解js的变迁之旅 这一片文章回到浏览器部分,首先了解下加密技术,数据在明文传递过程中会被窃取,所以需要进行加密处理。 加密技术 对称加密 AES对称加密技巧,简单说就是有一个密钥,它可以加密一段信息,也可以对加密后的信息进行解密,和我们日常生活中用的钥匙作用差不多。 如果通信双方都各自持有同一个密钥,且没有别人知道,这两方的通信安全当然是可以被保证的(除非密钥被破解)。...
1. map { (Element) -> T in // Element的处理代码 } 简单说就是数组中每个元素通过某个方法进行操作,最后返回一个新的数组。 白话点就是:遍历数组每个元素并都进行相同的操作,返回操作后获取到的值 let test = [1, 2, 3] // 获取每个值的平方 let squares = test.map { $0 * $0 } // [...
Swift闭包其实相当于OC的匿名函数,当做函数入参的简写过程,在WWDC官方Swift课程里面有讲解的。 这里做一个记录,进行知识总结。OC的block使用下笔记可以看这篇文章 介绍 我们常使用的高阶函数就是使用闭包函数当入参之后简写出来的,例如 swift高阶函数可以看这篇文章 let sortArr: [Int] = [1, 2, 3] // 下方代码的作用是,遍历数...