移动开发

Swift Protocol

- 用于通信 一个简单的例子: 比如你封装了一个View, 需要回调出去一个按钮事件 class TestView: UIView { // 注意这里要使用weak标记 weak var delegate: TestViewProtocol? fileprivate lazy var iEnterBtn: UIButton = { let btn

JS高级—call(),apply(),bind()

call() 介绍 通过提供一个新的this值给当前调用的函数/方法,从而改变this指向。 语法 fn.call(this.Arg, arg1, arg2,...) thisArg:当前调用函数this指向的对象 arg1, arg2:传递的其他参数(直接传给形参可不写) 特点 可以直接调用函数—fn.call() 可以改变被调用函数的this指向为指定的— fn.call(this.

mac安装navicat及使用

0.删除旧的 sudo rm -Rf /Applications/Navicat\ Premium.app sudo rm -Rf /private/var/db/BootCaches/CB6F12B3-2C14-461E-B5A7-A8621B7FF130/app.com.prect.NavicatPremium.playlist sudo rm -Rf ~/Library/Caches/c

22. 多态

Java三大特性有封装、继承、多态。 前面我们已经学过了封装和继承,今天学习多态,如需前面内容的可自行查看。 1、多态的引入 多态是继封装、继承之后,面向对象的第三大特性 生活中,比如交通工具的种类可以分为飞机、汽车、轮船 再比如交通工具的运行方式飞机运行方式是飞在天上、汽车是在马路上开、轮船是在海上行驶 可见,同一行为,通过不同的事物,可以体现出来的不同的形态 多态,描述的就是这样的状态。 2、

Flutter基础知识

0、Dart是值传递还是引用传递? Dart是值传递。每次调用函数,传递过去的都是对象的内存地址,不是对象的复制。 知识点扩展:Swift的struct是值类型,class是引用类型;意思是:声明一个新的变量指向这个结构体,改变某个属性,原本的结构体属性不会发生变化;而类会随着改变 1、Flutter的核心树 Widget: 1、使用配置和状态,描述view的样子 2、当一个Widget发生改变时

iOS:APP后台永久保活方法

Signing&Capabilites开启Audio,AirPlay,and Picture in Picture模式 应用在后台时播放声音信息,可以利用此模式播放无声音频,APP进入后台播放无声音频,可以实现APP长时间保活 代码如下 编写音乐播放类 #import <Foundation/Foundation.h> #import<AVFoundation/AVFou

iOS重学之启动优化(三)- Clang插桩

写在前面 在 上一篇文章iOS重学之启动优化(二)- 二进制重排 最后我们提出了一个问题:如何精确获取应用启动时刻的符号调用顺序,本篇文章我们就来详细介绍如何通过Clang插桩来对所有的符号进行100%的Hook。 Clang插桩 LLVM内置了一个简单的代码覆盖率检测(SanitizerCoverage)。它在函数级、基本块级和边缘级插入对用户定义函数的调用,并提供了这些回调的默认实现。在认为启

Python安装与环境配置全程详细教学(包含Windows版和Mac版)

Windows版Python的安装与环境配置1.下载PythonPython下载地址:Download Python | Python.org可以在这里直接点击下载,就会下载你电脑对应的最新版本如果你要是不想下载对应的最新版或者因为某些原因你想安装某一特定版本的Python你可以在上面的Downloads中点击Windows你就可以看到所有版本的Python&#xff0