第24天 runtime】的更多相关文章

面试时被问到一个问题,如何实现weak变量的自动置nil?当时也不知道. 今天在实现target-action模式时,如何调用SEL,刚开始只会PerformSelector,但不能传递多个参数,后来用 objc_msgSend.Objective-C的消息机制就是使用objc_msgSend. 很多面试的问题会和runtime相关 [※※※※]使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?  [※※※※※]objc中的类方法和实例方法有什么本质区…
1.#import和#include的区别,@class代表什么? (1)#import指令是Object-C针对#include的改进版本,#import确保引用的文件只会被引用一次,这样你就不会陷入递归包含的问题中. (2)#import与@class二者的区别在于: #import会链入该头文件的全部信息,包括实体变量和方法等:而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定 义的,暂时不用考虑.在头文件中, 一般只需要知道被引用的类的名称就可以了. 不需要知道…
1.#import和#include的区别,@class代表什么? 2.浅拷贝和深拷贝区别是什么? 3.Objective-C中类别和类扩展的区别? 4.Objective-C堆和栈的区别? 5.内存管理的几个原则是什么? 6.NSMuatableArray *array = [NSMuatableArray array] 需要释放么? 7.@property本质是什么 8.delegate用什么属性修饰,ARC下与MRC下有何不同,为什么? 9.NSString,NSArray,NSMutab…
安装golang centos7 直接安装golang yum install golang centos6需添加软件源,然后再安装 rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm yum install golang   安装依赖包 yum groupinstall 'Development tools' yum install glibc-static ​sqlite-deve…
系统用来每天插入视图数据... 一.数据库表设计 1.接口配置表(t_m_db_interface_config) 2.接口日志表(t_m_db_interface_log) 3.前端配置页面 查询页面: 新增及修改页面: 第一个sql一般用来删除原有数据,第二个sql一般用来插入新数据,多条sql可以写在一起,代码中做了批处理,用分号隔开(英文的分号). 不配置临界时间点时sql示例:delete from table_ where BUSSINESS_DATE>=DATE_FORMAT(NO…
Go语言打印调用堆栈 这两天看Go的代码,呃,协程太多,无数个携程调用了一个方法,彻底看不清了,所以就想到是不是可以把调用堆栈打印出来. 查了一下,发现Go的 runtime/debug 库可以把调用堆栈打出来.下面看个例子: package main import ( "fmt" "runtime/debug" ) func test1() { test2() } func test2() { test3() } func test3() { fmt.Printf…
对于一些服务来说,性能是极其重要的一环,事关系统的吞吐.访问的延迟,进而影响用户的体验. 写性能测试在Go语言中是很便捷的,go自带的标准工具链就有完善的支持,下面我们来从Go的内部和系统调用方面来详细剖析一下Benchmark这块儿. Benchmark Go做Benchmar只要在目录下创建一个_test.go后缀的文件,然后添加下面函数: func BenchmarkStringJoin1(b *testing.B) { b.ReportAllocs() input := []string…
前言 程序性能分析我相信是每个程序员都会遇到的问题,比如说一个程序的CPU为什么占用这么高?有没有优化的空间?又比如程序出现了内存泄漏如何排查等等.如果是C++程序会借助于Google pprof c++ profile,java程序会依赖于jstack等工具,幸运的是Golang语言本身就集成了性能分析工具pprof包,可以有效的分析程序CPU,MEM,Metux等指标.其中还可以通过第三方图形应用来更加直观的显示每个调用关系和指标占用情况. 演示环境 $ uname -a Darwin Da…
装饰器 定义:本质是函数,为其他函数添加附加的功能. 原则:1.不能修改原函数的源代码 2.不能修改被原函数的调用方式 重点理解: 1.函数即“变量” 2.高阶函数:返回值中包含函数名 3.嵌套函数 高阶函数 + 嵌套函数 = 装饰器 热身: 先感受一下Python的解释器,结果可能和你预想的不同 __author__ = 'jcx' def foo(): print("in the foo") bar() #解释器依次解释,先声明print后bar def bar(): print(…
很早以前,已经使用过了Docker了,但是没有使用过 Docker 部署 NetCore 3.1 的应用程序,今天部署的时候发生了一些问题,解决办法:Docker 版本太低了,那就升级一下.下面是具体的方法1.查找主机上关于Docker的软件包 # rpm -qa | grep docker – – 列出包含docker字段的软件的信息 docker-1.13.1-53.git774336d.el7.centos.x86_64 docker-client-1.13.1-53.git774336d…