開始學(xué)習(xí)Swift - 基本概念

  • Swift中峡眶,不需要分號(hào),在其他語(yǔ)言中植锉,一個(gè)辫樱;表示一句指令的結(jié)束
    如果多個(gè)語(yǔ)句并列,可以使用分號(hào)
    • OC中俊庇,alloc/init對(duì)應(yīng)在()狮暑,構(gòu)造函數(shù),創(chuàng)建并且初始化對(duì)象
    • OC中辉饱,alloc/initWithXXX對(duì)應(yīng)Swift中(XXX:)
    • OC中搬男,[UIColor redColor]類函數(shù),在Swift中直接用點(diǎn).
    • 枚舉類型UIButtonTypeContactAdd彭沼,Switf中分開寫UIButtonType.ContactAdd(熱鍵:
      回車 - → - 點(diǎn))缔逛,直接點(diǎn)很多時(shí)候沒有提示
    • print 類似于 OC 的NSLog,但是效率更高
    • 添加監(jiān)聽方法姓惑,直接用"方法名"褐奴,如果有參數(shù)在方法名后加冒號(hào)"方法名:"
    • Swift中谦炬,可以省略self. 两踏,加上也可以,最好不要加(閉包中必須要self.)
override func viewDidLoad() {
        super.viewDidLoad()
        
        let a = 10; let b = 20
        print(a + b)
        
        // 創(chuàng)建一個(gè)視圖并且指定一個(gè)位置
        let v = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
        
        // 背景顏色
        v.backgroundColor = UIColor.magentaColor()
        
        view.addSubview(v);
        
        // 創(chuàng)建按鈕
        let btn = UIButton(type: UIButtonType.ContactAdd)
        btn.center = view.center;
        btn.addTarget(self, action: "click:", forControlEvents: .TouchUpInside)
        view.addSubview(btn);
    }
    
    func click(sender:UIButton) {
        print("點(diǎn)我了 \(sender)")
    }
  • let 定義常量 - 一旦設(shè)置數(shù)值桑寨,不允許修改
    var 定義變量 - 可以修改

如何選擇唯沮?
盡量用let脖旱,必須要修改的時(shí)候堪遂,再用var
不變的是比較好控制的,這樣程序更安全更可控

  • 自動(dòng)推導(dǎo):會(huì)根據(jù)設(shè)置數(shù)值的右側(cè)代碼萌庆,推斷變量/常量的類型
    但是在Swift中溶褪,任何時(shí)候都不會(huì)做隱式轉(zhuǎn)換
    任何兩個(gè)類型不同的變量或常量不允許直接計(jì)算! - Swift是一個(gè)類型要求異常嚴(yán)格的語(yǔ)言
func demo2() {
        // Int -> 64位整數(shù) long
        let y = 1.5
        // Double -> 小數(shù)默認(rèn)為Double踊兜,雙精度小數(shù)竿滨,OC中使用CGFloat浮點(diǎn)數(shù)比較多,Double精度更高
        let r1 = x + Int(y)
        print(r1)
        
        let r2 = Double(x) + y
        print(r2)

        // 定義變量或者常量如果需要指定類型
        // 冒號(hào)+類型的方式指定準(zhǔn)確類型
        let z: Double = 20
        print(z + 1.5)
    }
    
    func demo() {
        //
        
        let x = 20
        //        x = 30
        var y = 80
        y = 30
        
        print(x + y)
        
        // 視圖實(shí)例化之后捏境,并沒有修改指針的地址
        let v = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
        // 只是在修改屬性于游,并沒有改變v本身的地址
        v.backgroundColor = UIColor.blackColor()
    }
  • 可選項(xiàng):一個(gè)變量,可以為本身的類型垫言,也可以為nil
    func demo3() {
        // 可選項(xiàng):使用問號(hào)贰剥?定義
        // y可以是一個(gè)整數(shù),也可以是nil筷频,如果是變量蚌成,默認(rèn)值是nil
        // 注意:可選項(xiàng)在輸出的時(shí)候會(huì)提示'Optional'可選的
        var y: Int? = 10
        print(y)
        
        // * 可選項(xiàng)不能直接計(jì)算
        // ! - 強(qiáng)行解包(unwrapping) - 注意:程序員承諾凛捏,y一定有值担忧,如果沒有,崩給我看
        // 常見錯(cuò)誤:unexpectedly found nil while unwrapping an Optional value
        // 每次寫坯癣!的時(shí)候,都需要程序員思考示罗,是不是有可能為nil
        print(y! + 20)   
    }
    func demo4() {
        let urlString = "http//:www.baidu.com" // /中文"
        // 注意:構(gòu)造函數(shù)如果有'?'表示不一定能創(chuàng)建出對(duì)象(地址后加中文就會(huì)為nil)
        let url = NSURL(string: urlString)
        
        print(url)
        
        // 注意:如果參數(shù)中沒有'?'表示必須要有值惩猫,如果為nil,就會(huì)崩潰
        if url != nil {
            let request = NSURLRequest(URL: url!)
            print(request)
        }
    }

*提示*:可選項(xiàng)是所有OC程序員剛接觸Swift的時(shí)候最頭疼的問題
1. 明確可選項(xiàng)的概念:考慮如果沒有值怎么辦
2. 實(shí)際開發(fā)中蚜点,借助Xcode智能提示轧房,幫助修改
3. 每次修改都要思考為什么!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绍绘,一起剝皮案震驚了整個(gè)濱河市奶镶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脯倒,老刑警劉巖实辑,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異藻丢,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)摄乒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門悠反,熙熙樓的掌柜王于貴愁眉苦臉地迎上來残黑,“玉大人,你說我怎么就攤上這事斋否±嫠” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵茵臭,是天一觀的道長(zhǎng)疫诽。 經(jīng)常有香客問我,道長(zhǎng)旦委,這世上最難降的妖魔是什么奇徒? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮缨硝,結(jié)果婚禮上摩钙,老公的妹妹穿的比我還像新娘。我一直安慰自己查辩,他們只是感情好胖笛,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宜岛,像睡著了一般长踊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萍倡,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天身弊,我揣著相機(jī)與錄音,去河邊找鬼遣铝。 笑死佑刷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酿炸。 我是一名探鬼主播瘫絮,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼填硕!你這毒婦竟也來了麦萤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扁眯,失蹤者是張志新(化名)和其女友劉穎壮莹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姻檀,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡命满,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绣版。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胶台。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡歼疮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诈唬,到底是詐尸還是另有隱情韩脏,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布铸磅,位于F島的核電站赡矢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阅仔。R本人自食惡果不足惜吹散,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霎槐。 院中可真熱鬧送浊,春花似錦、人聲如沸丘跌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)闭树。三九已至耸棒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間报辱,已是汗流浹背与殃。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碍现,地道東北人幅疼。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像昼接,于是被迫代替她去往敵國(guó)和親爽篷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

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