UI 進階總結

//
//  ViewController.m
//  ReviewKonwledge
//
//  Created by lanouhn on 16/3/20.
//  Copyright © 2016年 joner. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // *** 國際技術指導師 邵瓊 joner  **
    // SVN,Subversion,是一個開放源代碼版本控制系統,採用了分支管理系統。代碼託管中心,方便我們團隊開發的合併代碼的一項技術。SVN 技術採用了集中式的管理方式-要做到及時跟新代碼,gitUP技術,採用了分佈式技術。
    // 目前我們都是客戶端(cornerStone,smartTree),一般去一個公司,人家會給個網址(http 說明爲外網, svn:192..說明是內網);也有很多的命令行。
    // **SVN造成的衝突有:同時修改了同一行代碼,同時增加了文件。 記住:配置文件,一定不能動。
    // 高手都是去避免問題,而不是製造問題--- 每次提交都要 update 一下。在做什麼事之前要和團隊溝通下。
    // 團隊開發之storyboard 分支, 方案:storyboard Refrence--關聯其控制器; storyboard ID(name:名字,story 的名字;ID:給控制器設置的 ID)




    ///第三方登錄:省去了註冊,前提:認可、login 請求、獲取暱稱,圖片、服務器存儲數據--- Umeng, shareSDK.涉及到兩個程序之間的跳轉,授權 SSO, 都要設置 URLSchume.
    // 去官網獲取,AppKey 以及SecreteKey




    // 第三方環信即時通信
    // *區官方網戰,導入:EMSDK,3.0的很多方法同時同步方法。需要我們自己封裝助手類,具體包括:異步方法(子線程-執行耗時的任務, 主線程刷新界面),block。以及(1)設置是否自動登錄-EMClientDelegate,(2)好友的管理代理-EMContactManagerDelegate,去監聽回調的方法。(3)EMConversation中的conversationID是唯一的會話標識。同樣設置EMChatManagerDelegate代理對象監聽




    // 三大支付--支付寶,微信,銀聯
    // 同樣操作:去官網文檔,下 demo.都要設置 URL Scheum
    // AliPay:前端開發需要:(企業支付寶賬號)Seller,(合作賬號)PID,私鑰(如:RSA).
    // WeixinPay:AppID, 付款的時候需要 prepareID.
    // UnionPay: 訂單信息 00表示:正式





    // 地圖:導入 CL(CoreLocation)
    // location,位置對象, mapView,地圖屬性, geocoder,地理編碼。





    // FMDB,第三方的一個類。可以助手類,進行調用。
    // 具體助手類操作:(1)寫單例; (2)FMDB屬性; (3)獲取 sqlite 數據庫文件路徑NSSearchPathFor; (4)創建表(打開數據庫,執行 execUpdate,只有查詢的時候爲 execQuery,關閉數據庫);(5) 插入- 帶參數stu:image 類型--轉爲 NSNumber,UIImagePNGRepresentation:icon];  (6)查詢-根據 stuID,data 轉爲 image---【uiimage imageWithData],創建模型比那個插入模型中。(7)修改,刪除同理。(8)線程安全--多個操作同時操作數據庫FMDatabaseQueue,解決線程安全的類。裏面的操作是同步隊列,也就是說裏面的操作只能一個個執行。




    // cocoaPods,管理第三方依賴庫的工具。cd , touch Podfile, pod search afnetworkin, pod install.
    // 比如:AFNetworkong, AFN能解析的格式有:application/json,text/json,text/javaScript。如果地址中有中文格式,那麼需要轉換。





    // 批量下載:
    // 助手類:session.datasource,網絡請求,下載-根據模型; 還有個NSURLSessionDownloadDelegate的代理方法。
    // 兩個模型-- 其中下載模型downLoadModel中,有個 block 屬性(myBlock)、 在展示 cell 的時候,調用 setMyBlock.
    // 解決 cell 複用 -- 辦法:下載頁面--  didEndDisplayingCell時,block 置爲 nil
    // ***助手中,有個 數據源-傳給下載頁面; 下載模型中,有個 block 穿進度; 解決 cell 複用,設置block 爲 nil;






    // 動畫,view 動畫(UIView beginAnimations....UIView commitAnimation),可以調節大小frame,透明度alpha,旋轉transform.;;; block動畫,[UIView animationWithDouration ..],過渡動畫(轉場動畫,[UIView setAnmiationTransition),關鍵幀動畫,[UIView animationKeyFrame, Spring 動畫-彈簧動畫
    // CA(coreAnimation動畫),他是 layer 的動畫.layer是 view 下面真實的內容.CAKeyframeAnimation 動畫;bezier 關鍵幀動畫,轉場動畫- CATransition 動畫; 動畫組(CAAnimationGroup); CASpringAnimation
    // layer 的複雜屬性--- 錨anchorPoint(0-1),位置position(相對於父視圖的位置),他兩永遠重合,改變其中一個一定要在改變另一個(slider 的豎直襬放)





    // 多媒體,一定要導入 AVFoudation 頭文件; 支持後臺播放音樂,以及遠程控制事件;
    // AVAudioPlayer(播放本地資源, 音量:-0到1與 slider 的值value0到1是對應的;; 快進: 當前的進度currentTime = 用 slider 的 value(0-1)乘總時間 douration); viewDidLoad 獲取總時長顯示在 label 上
    // AVPlyer,可以播放網絡資源.
    // AVPlayerItem媒體資源對象. 觀察 item 的 status 的屬性變化,直到爲AVPlayerItemStatusReadyToPlay時,裏面有CMTime // item.douration.value(總幀),item.douration.timeScale(每秒多少幀)





    // swift,終有一天會取代 OC;裏面沒有.m/.h 只有.swift 文件。 var,let,func;用 OC 方法做事。
    // struct,class,安全構造性原則,屬性都要初始化。
    // Array,Dictionary,值類型; 函數,類,block 引用類型。
    // block語法:typealias




    // 沙盒:本地存儲你都放在沙盒路徑中,doucudents(存儲不太大的數據,plist 文件,sqlite 文件),library(cache,圖片,音頻;preferences,用戶設置如:NSUserDefaults),tmp(臨時路徑)
    // 獲取路徑-NSSearchPath,拼接路徑-stringbyAppendingPathComponent; txt,array,dictionary,寫入都是:writetofile 讀取:對應 stringWithContentOffile
    // 文件管理器 NSFileManager,他是單例的創建方法。文件對接器 NSFileHandle
    // 歸檔(序列化-複雜對象->NSData),反歸檔(反序列化,NSData->複雜對象)




    // coreData是一種技術,數據管理器NSManagerObjectContext.模型,數據庫。




    // 網絡解析,JSON.XML(SAX.DOM);
    // JSON 解析有個 JSONSerilization(串行),
    // SAX 解析基於事件驅動的方式,逐行解析;需要遵守協議 NSXMLParseDelegate,開始解析文件 douments,獲取起始標籤、結束標籤(多次),解析 結束標籤 elements,結束解析-documents。
    // dom 解析:一般用於較小的 xml 文件,全部讀取;需要導入第三方 GDataXMLNode,遍歷。




    // 網絡請求,session
    // url->request->session(網絡會話,儘量少建;數據請求,下載,上傳)->task->resume,請求回來的數據都是一段段的。





    // 網絡安全,有鑰匙串,系統的MD5,第三方(RSA,加密與解密);涉及到了 addObsever-一般選擇 new,寫方法(obseverValueForKeyPath),最後 dealloc 移除觀察者




    // 多線程
    // 一個進程裏面有很多的線程
    // 可以自己創建,那麼都在子線程,(1)NSThread,alloc (2)[NSThread detachNewThreadSelector:] (3)NSObject 創建 [self performSelector (4)NSOperatinQueue 開闢線程,NSInvocationOperatin,NSBlockOperatin 用來執行任務(他兩都有個共同的抽象類-NSOperatin)。
    // GCD -串行(系統自帶dispatch_get_main_queue,創建-DISPATCH_QUEUE_SERIAL);並行(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),自己創建-CONCURRENT)
    // GCD - diapatch_async(異步),延遲 after。
    // 並行-一定開闢了子線程;串行如果加上異步會效率很高,我們一般會採用。如果採用同步串行,一般會界面卡死。相互等待造成死鎖。
    // 買票系統 - 一般我們採取在每次操作票數時,將其鎖住 lock,操作完畢之後,我們再打開 unlock。




    // XMPP,JID 是唯一的。
    // XMPPStream,與服務器練習
    // XMPPRooster,完成好友的管理。
    // XMPPPresence,標記狀態。




}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章