_unsafe_unretained 这样修饰的变量不属于编译器管理的内存,与__weak类似。但是当指向的内存空间释放后,它不会设置为nil,而是变成了野指针。这点与__weak区别。The use of unsafe_unretained creates more readable and understandable code where the intentions of the developer are easier to see. 告诉人们它所指向的内存不能被释放,否则就crash。
单例:https://objccn.io/issue-13-2/
“单例是披着羊皮的全局变量”
全局可变的状态是不好的行为。单例就是这样的行为,因为在APP整个生命周期中,任何对象都可以改变单例中的状态,这使得单例有些不可控了。 单例应该只用来保存全局的状态,并且不能和任何作用域绑定。在面向对象编程中我们想要最小化可变状态的作用域。
IMP:函数指针
SEL:表示该方法的名称
动态决议,请求转发
加密解密:
对称加密-->DES,AES
① 抵抗所有已知的攻击。
② 在多个平台上速度快,编码紧凑。
③ 设计简单。
非对称加密-->RSA, openssl
数字签名的过程如下:明文 --> hash运算 --> 摘要 --> 私钥加密 --> 数字签名http://www.wxtlife.com/2016/03/27/详解https是如何确保安全的?/
TCP端口状态:LISTENING,ESTABLISHED,CLOSE_WAIT,TIME_WAIT
单例:问题-》如果有人copy ,使用等于号,或者[[XXX alloc]init] 那么单例还是那个全局唯一吗?
https://duckrowing.com/2011/11/09/using-the-singleton-pattern-in-objective-c-part-2/
线程锁原理:http://www.jianshu.com/p/5dbb07c8d5d5
编码格式:
base64:内存1个字符占8位,转成ascii,看为8位8位的形式,然后有个64字母表的映射关系,映射上就可以了。
ASCII :美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。
Unicode:它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。在Unicode中,我们有很多方式将数字23383表示成程序中的数据,包括:UTF-8、UTF-16、UTF-32。
UTF-8以字节为单位对Unicode进行编码
UTF-16编码以16位无符号整数为单位
UTF-32编码以32位无符号整数为单位
MD5(不可逆)(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。MD5的典型应用是对一段信(Message)产生信息摘要(Message-Digest),以防止被篡改。MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的
“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。类似的SHA1
AES加密:对称加密 AES并不能作为HASH算法
GBK编码:
UTF-8编码:
第三方登录---->
关键:a, 双方都需要使用URL Scheme注册到苹果系统。
b, 双方都通过openURL的方式打开对方的APP。
c,双方APP都必须添加对方APP到白名单。
第一步:在各大APP(eg,weichat)后台注册,例如APPID,APPSecret,ReDirectUrl等。
第二步:在本APP info.plist中LSApplicationQueriesSchemes中添加跳转的白名单,否则将在SDK判断是否跳转打开第三方APP时用到的canOpenURL时返回NO。(各大APP已经向苹果系统注册了自己的URL Scheme)
第三步:在info.plist ,URL Scheme是通过系统找到并跳转对应app的一类设置,通过向项目中的info.plist文件中加入URL types,可使用第三方平台所注册的appkey信息向系统注册你的app,当跳转到第三方应用授权或分享后,可直接跳转回你的app。
第四步:在代码中,初始化SDK,主要是向weichat告诉APPID(不然weichat回跳时候不知道望哪里跳了)
软件运行过程:
XIB: http://idealife.github.io/2015/10/10/对xib设计界面中File-s-Owner以及Objects的理解/.
File’s Owner只是设计时的占位符,只有程序运行时,谁加载了此xib文件,谁才是其Owner。
Objects中的添加的NSObject(也可以是NSViewContrller),在xib文件加载的时候都会被实例化。可以这么理解,等效于xib中拖放的控件,可以分2种用途,1、不显示,用于处理与界面之间的交互。2、在代码中控制界面的显示。
这些Object都可以通过outlet连接到File’s owner中,这样子File’s owner就可以统一管理界面中的元素了。Object之间也可以相互之间连接。
网友评论