_unsafe_unretained 這樣修飾的變量不屬于編譯器管理的內存甘凭,與__weak類似。但是當指向的內存空間釋放后赡鲜,它不會設置為nil卸奉,而是變成了野指針钝诚。這點與__weak區(qū)別。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/
“單例是披著羊皮的全局變量”
全局可變的狀態(tài)是不好的行為。單例就是這樣的行為秉继,因為在APP整個生命周期中,任何對象都可以改變單例中的狀態(tài)泽铛,這使得單例有些不可控了尚辑。 單例應該只用來保存全局的狀態(tài),并且不能和任何作用域綁定盔腔。在面向對象編程中我們想要最小化可變狀態(tài)的作用域杠茬。
IMP:函數(shù)指針
SEL:表示該方法的名稱
動態(tài)決議月褥,請求轉發(fā)
加密解密:
對稱加密-->DES,AES
① 抵抗所有已知的攻擊。
② 在多個平臺上速度快瓢喉,編碼緊湊宁赤。
③ 設計簡單。
非對稱加密-->RSA, openssl
數(shù)字簽名的過程如下:明文 --> hash運算 --> 摘要 --> 私鑰加密 --> 數(shù)字簽名http://www.wxtlife.com/2016/03/27/詳解https是如何確保安全的栓票?/
TCP端口狀態(tài):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.reibang.com/p/5dbb07c8d5d5
編碼格式:
base64:內存1個字符占8位继找,轉成ascii,看為8位8位的形式逃沿,然后有個64字母表的映射關系婴渡,映射上就可以了。
ASCII :美國信息交換標準代碼)是基于拉丁字母的一套電腦編碼系統(tǒng)凯亮,主要用于顯示現(xiàn)代英語和其他西歐語言缩搅。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng)。用指定的7 位或8 位二進制數(shù)組合來表示128 或256 種可能的字符触幼。
Unicode:它為每種語言中的每個字符設定了統(tǒng)一并且唯一的二進制編碼硼瓣,以滿足跨語言、跨平臺進行文本轉換置谦、處理的要求堂鲤。在Unicode中,我們有很多方式將數(shù)字23383表示成程序中的數(shù)據(jù)媒峡,包括:UTF-8瘟栖、UTF-16、UTF-32谅阿。
UTF-8以字節(jié)為單位對Unicode進行編碼
UTF-16編碼以16位無符號整數(shù)為單位
UTF-32編碼以32位無符號整數(shù)為單位
MD5(不可逆)(中文名為消息摘要算法第五版)為計算機安全領域廣泛使用的一種散列函數(shù)半哟,用以提供消息的完整性保護。MD5的典型應用是對一段信(Message)產生信息摘要(Message-Digest)签餐,以防止被篡改寓涨。MD5就可以為任何文件(不管其大小、格式氯檐、數(shù)量)產生一個同樣獨一無二的
“數(shù)字指紋”戒良,如果任何人對文件做了任何改動,其MD5值也就是對應的“數(shù)字指紋”都會發(fā)生變化冠摄。類似的SHA1
AES加密:對稱加密 AES并不能作為HASH算法
GBK編碼:
UTF-8編碼:
第三方登錄---->
關鍵:a, 雙方都需要使用URL Scheme注冊到蘋果系統(tǒng)糯崎。
b, 雙方都通過openURL的方式打開對方的APP几缭。
c,雙方APP都必須添加對方APP到白名單沃呢。
第一步:在各大APP(eg年栓,weichat)后臺注冊,例如APPID薄霜,APPSecret某抓,ReDirectUrl等。
第二步:在本APP info.plist中LSApplicationQueriesSchemes中添加跳轉的白名單黄锤,否則將在SDK判斷是否跳轉打開第三方APP時用到的canOpenURL時返回NO搪缨。(各大APP已經向蘋果系統(tǒng)注冊了自己的URL Scheme)
第三步:在info.plist ,URL Scheme是通過系統(tǒng)找到并跳轉對應app的一類設置鸵熟,通過向項目中的info.plist文件中加入URL types副编,可使用第三方平臺所注冊的appkey信息向系統(tǒng)注冊你的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就可以統(tǒng)一管理界面中的元素了。Object之間也可以相互之間連接改备。