代理: 个人理解, 假如存在 A B两个对象
需求: 当B做出动作的时候, 需要A来响应,并做出动作
实现思路:
代码如下:
下载地址:https://download.csdn.net/download/qq_29305413/12676120
A 对象
import UIKit
class ViewController: UIViewController,TestDelegate {
func returuColore(in color: UIColor) {
// 改变自身
self.view.backgroundColor = color
}
func returuTest(in test: String) {
self.title = test
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.title = "点击改变背景"
}
@IBAction func clickPushTestVC(_ sender: Any) {
let testVc = TestVC.init()
testVc.delete = self
self.navigationController?.pushViewController(testVc, animated: true)
}
}
B 对象
import UIKit
@objc
public protocol TestDelegate {
/// 必须执行
func returuColore(in color:UIColor)
/// 选择执行
@objc optional func returuTest(in test:String)
}
class TestVC: UIViewController {
open weak var delete:TestDelegate?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func clickChangeColor(_ sender: Any) {
self.delete?.returuColore(in: .yellow)
self.delete?.returuTest?(in: "背景已经改变")
}
}
当一个项目要上线对外发布时,为了安全,不被别人破解,一般都要进行混淆或资源加密等, 下面就针对一些项目中用到的第三方Jar混淆规则进行record,会持续更新,敬请关注: 注:当无法确定第三方jar包存放位置时,可以通过-keep class xx.xx.包名来过滤。**———————————-一、 Gson混淆———————————--keepattributes Signature -ke
在 Dreamweaver 的“文档”窗口中打开 index.html 页面,插入一个三列的表格,在由三列组成的表格的中间一列中放置的图形之上单击一次。选择“插入”>“媒体”>“Flash 视频”。在“插入 Flash 视频”对话框中,从“视频类型”弹出式菜单中选择“渐进式下载视频”。 关于…关于 Flash 视频 使用 Dreamweaver 中的“插入 Flash 视频”命令,可将...
报表应用中实现数据源计算经常会使用存储过程,但同时也带来多方面的问题。首先,存储过程的包只提供一层分类,无法用树形结构组织,容易造成代码管理混乱。而有些程序员更是直接在现场在线修改存储过程,也不利于代码管理。其次,升级存储过程时需要数据库的写权限,容易对数据安全造成影响。另外,由于 SQL 固有的一些问题(数据无序、缺乏集合、无法引用、分步不彻底,等等),使得存储过程的编程也比较困难。很多情况...
python+selenium安装python下载地址:https:www.python.org安装完成进入cmd,输入python如果cmd找不到,需要添加环境变量selenium安装地址:https://pypi.org添加环境变量python/Scriptshttps://pypi.org/project/selenium/pip=python -m pippython -m pip ins...
阅读了GDB文档,将主要知识点简要的写一下: 编译时:-g -o0(-g:将调试信息加到可执行文件中 -o0:编译过程中不进行优化,默认是2) attach目标程序:gdb text.exe,设置参数:set args 10 20 30 40 50 arrach运行中程序:gdb -p...
Python作为一个使用简便,并且开发效率极快的解释型语言,上手特别的简单,但是简洁的语法中有时也藏着不少的坑,接下来的文章里面会把笔者近一年学习中遇到的坑都翻出来。接下来用WWH原则来解析一下Python。What:Python是什么语言性质:上面已经说过,Python是一门***解释型语言***,他与编译型语言的区别在于运行前不需要直接编译成机器语言,而是在运行时将程序翻译成机器语言。...
前面已经介绍了怎么样编译项目,生成一个HEX文件,但是这个目标文件还是储存在电脑上,这样你辛苦写出来的代码,还是一个没有什么作用的文件,即使已经把开发语言变成了机器语言,也是无济于事的。那么怎么样才能把这个目标文件搬到STM32的CPU里面呢?这是有很多种方法的,比如采用STM32的烧写器;比如把目标文件发送给ST公司,让生产这个CPU时,直接写入去;在我这里采用开发的模式,就是使用前面介绍的JL...
请到这里去查看图文教程:http://studyai.com/pytorch-1.4/intermediate/named_tensor_tutorial.html命名张量旨在通过允许用户将显式名称与张量维度关联,使张量更易于使用。在大多数情况下, 采用维度参数的操作将接受维度名称,从而避免了按位置跟踪维度的需要。此外,命名张量使用 名称自动检查API在运行时是否正确使用,从而提供额外的安全性。...
Java -- 常用的JNI接口函数简介(二)接着上一篇,再继续介绍一些其他常用的JNI接口函数(函数调用示例基于C++实现)。一、数组操作1、获取数据长度在JNI中,如果我们需要获取常如数组参数的长度值,可以调用jsize GetArrayLength(JNIEnv *env, jarray array):GetArrayLength jsize Ge...
最近很多热爱玩游戏的朋友看了我文章后,经常私信问我,“你是黑客吗?”我回答“我是一个白帽子黑客”。“那能不能帮我攻入游戏系统做一款游戏外挂,咱们一起赚钱?”我就只能呵呵了,肯定是不可以的,技术上虽然可以实现但是原则上一定不要那么做。首先大家可以学习如何做外挂,也可以自己在家用单机游戏做外挂来测试,这样既能提高自身技术又能满足自己的好奇心,但是如果为了谋取利益攻击网络游戏,做一款外挂这样就是触犯...
在实现彩色图片转换为灰度图片之前,先来了解一下图像数字化。当你张开眼睛,就看到现实的世界,比如房子,花草和不同的物品。如果要把当前的眼睛所见的东西保存起来,在以前是使用胶片相机,那是采用化学的感光方法来进行记录。这种记录的方法是在分子层面的记录,在肉眼看来,它就是连续的,不能区分的,我们常常把这种情况叫做模拟记录,因此这种图片也叫做模拟图片。随着时代的进步,人们发现人的眼睛对物体的分辨能力是有限的...
(转自正点原子的回复)标准的工程新建办法,是要添加" USE_STDPERIPH_DRIVER,STM32F10X_HD的.USE_STDPERIPH_DRIVER,是告诉编译器,我们需要使用标准库了(实际上是.c/.h文件里面的一个宏,通过这个宏决定是不是要用某些资源,比如库函数的使用)STM32F10X_HD,则是表示我们使用的芯片是大容量的stm32,从而告诉那些.c/.h文件,使用...