swift學(xué)習(xí)第二天

今天是學(xué)習(xí)swift的第二天褂删,主要講的是OC代碼遷移到swift當(dāng)中

一.懶加載
格式:
lazy var變量名:變量類型= {
定義一個同樣類型的常量賦值后return出來
}()

lazy var array:[String] = {
let list = ["123","234","345"]
returnlist
}()

二.單例
單例兩種創(chuàng)建方式
第一種:static let 名字:類型 = {
let instance = 類型()
return instance
}()

static let shareSingleTon:SingleTon = {
        let instance = SingleTon()
        return instance
}()

第二種:static let instance = 類名()
class func shareSingTon()->返回值類型
{
return instance
}

static let instance = SingleTon()
    class func shareSingTon()->SingleTon
    {
        return instance
    }

三.代理
代理的步驟
如果協(xié)議里面有一些方法是選擇實現(xiàn)的宣羊,必須在標(biāo)識符protocol前面加上@objc温鸽,并且選擇實現(xiàn)的那些方法前面要加上optional修飾,必須實現(xiàn)的方法則一樣不用修飾符
?設(shè)置兩個協(xié)議

protocol womanDelegate{
    
    func makeMoney()
    
}
@objc protocol womanOptionalDelegate{
    
//    可選擇實現(xiàn)的方法
    optional func washCloses()
    
//    必須實現(xiàn)的方法
    func introduceMySelf()
}

設(shè)置代理

var delegate:womanDelegate?
    
 var optionaldelegate:womanOptionalDelegate?

引入代理

class ViewController: UIViewController,womanDelegate,womanOptionalDelegate {
}

實現(xiàn)代理方法

func makeMoney() {
        print("viewcontroller make money")
    }
    
func introduceMySelf() {
        print("viewcontroller introller myself")
    }

最后必須實現(xiàn)的方法如果沒有實現(xiàn)弛随,程序則會報錯

四.KVC
KVC調(diào)用流程:KVC(是一種通過字符串間接的訪問對象屬性的一種方式)
1疫稿,調(diào)用 setValuesForKeysWithDictionary
2铁坎,調(diào)用setvalue:forKey
-如果有找到對象的key值碳抄,則初始化并且賦值晾腔,沒有的話則到第3步
3舌稀,setvalue:forUndefinekey:

var name:String?
var age:Int = 0//基本數(shù)據(jù)類型在模型里面不能為可選類型,否則在KVC賦值的時候會找不到相應(yīng)的key值
var gender:String?
    
    init(dict:[String:AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        super.setValue(value, forKey: key)
    }
    
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }

五.用懶加載的方式創(chuàng)建UI控件灼擂,并且實現(xiàn)頁面的跳轉(zhuǎn)和傳值

lazy var btn:UIButton = {
        let button = UIButton(frame: CGRectMake(70,70,50,50))
        button.backgroundColor = UIColor.redColor()
//        Selector("btnAction:")  #selector(btnAction:)
        button.addTarget(self, action: "btnAction:", forControlEvents: UIControlEvents.TouchUpInside)
        return button
    }()
    
    lazy var label:UILabel = {
        let temp = UILabel(frame: CGRectMake(70,150,90,30))
        temp.backgroundColor = UIColor.cyanColor()
        return temp
    }()
    
    func btnAction(btn:UIButton){
        
        let secondVC = SecondViewController()
        secondVC.closure = {
            (str:String)->()
            in
            self.label.text = str
        }
        navigationController?.pushViewController(secondVC, animated: true)
        
    }

override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.whiteColor()
        view.addSubview(btn)
        view.addSubview(label)
    }
var closure:((str:String)->())?

    lazy var btn:UIButton = {
        let button = UIButton(frame: CGRectMake(70,70,50,50))
        button.backgroundColor = UIColor.blueColor()
       
        button.addTarget(self, action: "btnAction:", forControlEvents: UIControlEvents.TouchUpInside)
        return button
    }()

    lazy var textfield:UITextField = {
        let tetx = UITextField(frame: CGRectMake(70,150,150,50))
        tetx.backgroundColor = UIColor.redColor()
        return tetx
    }()

    
    
    override func viewDidLoad() {
        super.viewDidLoad()

       view.backgroundColor = UIColor.cyanColor()
        view.addSubview(btn)
        view.addSubview(textfield)
    }

    func btnAction(btn:UIButton){
//        執(zhí)行閉包
        closure!(str: textfield.text!)
        navigationController?.popViewControllerAnimated(true)
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末壁查,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剔应,更是在濱河造成了極大的恐慌睡腿,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峻贮,死亡現(xiàn)場離奇詭異席怪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纤控,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門挂捻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人船万,你說我怎么就攤上這事刻撒∠Ъ” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵疫赎,是天一觀的道長盛撑。 經(jīng)常有香客問我,道長捧搞,這世上最難降的妖魔是什么抵卫? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮胎撇,結(jié)果婚禮上介粘,老公的妹妹穿的比我還像新娘。我一直安慰自己晚树,他們只是感情好姻采,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爵憎,像睡著了一般慨亲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宝鼓,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天刑棵,我揣著相機(jī)與錄音,去河邊找鬼愚铡。 笑死蛉签,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沥寥。 我是一名探鬼主播碍舍,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼邑雅!你這毒婦竟也來了片橡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蒂阱,失蹤者是張志新(化名)和其女友劉穎锻全,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體录煤,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡鳄厌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了妈踊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片了嚎。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歪泳,到底是詐尸還是另有隱情萝勤,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布呐伞,位于F島的核電站敌卓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伶氢。R本人自食惡果不足惜趟径,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一尊流、第九天 我趴在偏房一處隱蔽的房頂上張望棘伴。 院中可真熱鬧,春花似錦奏赘、人聲如沸蕾盯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽级遭。三九已至望拖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間装畅,已是汗流浹背靠娱。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留掠兄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓锌雀,卻偏偏與公主長得像蚂夕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腋逆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理婿牍,服務(wù)發(fā)現(xiàn),斷路器惩歉,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • 今天因為工作上事情比較多等脂,只來得及勉強(qiáng)寫了一個demo,這次不懂的地方有點懂撑蚌,很多代碼都直接看了原作者的代...
    Lelouch20閱讀 107評論 0 0
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉上遥,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,715評論 0 9
  • 基于外鍵的單向一對一關(guān)聯(lián)映射 基于主鍵的單向一對一關(guān)聯(lián)映射 單向多對多關(guān)聯(lián)映射 一、基于外鍵的單向一對一關(guān)聯(lián)映射具...
    Single_YAM閱讀 261評論 0 1
  • 記得小的時候為了和“富”朋友們拉近關(guān)系争涌,為了融入“高層朋友圈”粉楚,生活拮據(jù)的我偷拿爸媽“珍藏”的硬幣,買零食宴...
    米樂87閱讀 243評論 1 1