swift-31加載百度

我以前做的swift筆記, 之前都是整理在onenote上, 最近想到整理出博客. 也方便自己查找, 可以當(dāng)做自己的一份文檔.

image.png
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        loadBaidu()
    }

    func loadBaidu() {
        let p = Person(name: "老王", age: 99)
        print(p?.name)
        
        
        //URL 的構(gòu)造函數(shù)可以返回nil
        //構(gòu)造函數(shù)就是實(shí)例化對象的
        //init?(string: String)
        
        let url = URL(string: "http://www.baidu.com/")
        
        //發(fā)起網(wǎng)絡(luò)請求
        //- 與oc的區(qū)別 閉包的所有參數(shù) 需要自己寫 oc是直接帶入
        //- 如果不關(guān)心的值 可以直接 '_' 忽略
        URLSession.shared.dataTask(with: url!) { (data, _, error) in
//            if error != nil {
//                print("網(wǎng)絡(luò)請求失敗")
//                return
//            }
            guard let data = data else {
                print("網(wǎng)絡(luò)請求失敗 \(String(describing: error))")
                return
            }
            
            // 將data 轉(zhuǎn)換為String
            let html = String(data: data, encoding: .utf8)
            print(html)
            
        }.resume()
        
    }

}
image.png
import UIKit

class Person: NSObject {
    var name: String?
    var age: Int = 0
    
    //便利構(gòu)造函數(shù)
    /**
     1遍歷構(gòu)造函數(shù)允許返回 nil
        -正常的構(gòu)造函數(shù)一定會創(chuàng)建對象
    *** - 判斷給定的參數(shù)時(shí)候符合條件 如果不符合條件 直接返回nil 不會創(chuàng)建對象 減少內(nèi)存開銷 
     2**只有** 遍歷構(gòu)造函數(shù)中使用 'self.init' 構(gòu)造當(dāng)前對象
        -沒有 convenience 關(guān)鍵字的構(gòu)造函數(shù)是負(fù)責(zé)創(chuàng)建對象的 反之用來檢查條件的 本身不負(fù)責(zé)對象的創(chuàng)建 
     3如果要在遍歷構(gòu)造函數(shù)中使用 當(dāng)前對象的屬性 一定要在 self.init 之后
     */
    
    /**
     便利構(gòu)造函數(shù)
     目的
        條件判斷 只有滿足條件 才實(shí)例化條件 可以防止造成不必要的內(nèi)存開銷
        簡化對象的創(chuàng)建
        本身不負(fù)責(zé)屬性的創(chuàng)建和初始化構(gòu)造
     
     特點(diǎn)
        默認(rèn)情況下 所有的構(gòu)造方法都是指定構(gòu)造函數(shù) Designted
        convenience 關(guān)鍵字修飾的構(gòu)造方法就是便利構(gòu)造函數(shù)
        便利構(gòu)造函數(shù)具有以下特點(diǎn):
            1可以返回 nil
            2只有便利構(gòu)造函數(shù)中可以調(diào)用 self.init()
            3便利構(gòu)造函數(shù)不能被 重寫 或者 super
            4便利構(gòu)造函數(shù)主要用于條件檢測 或者 簡化對象創(chuàng)建(分類常見控件, 內(nèi)部設(shè)置好UI控件的屬性, 如frame, color, fontsize)
     */
    convenience init?(name: String, age: Int) {
//        self.init()
        if age > 100  {
            return nil
        }
        //Use of 'self' in property access 'name' before self.init initializes self
//        self.name = name
        
        
        self.init()
        
        //執(zhí)行到此 self 才允許被訪問 才能夠訪問到對象的屬性
        self.name = name
        self.age = age
    
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,422評論 4 61
  • 畢業(yè)幾年后,總是會聊到一個(gè)話題:父母和原生家庭對人的影響,唏噓感慨遺憾羨慕都在其中。 對于大部分人來說,成長這個(gè)詞...
    宇宙八卦中心閱讀 519評論 2 3
  • 春天,十個(gè)海子 春天,十個(gè)海子全部復(fù)活 在光明的景色中 嘲笑這一個(gè)野蠻而悲傷的海子 你這么長久地沉...
    葉寧而遠(yuǎn)閱讀 315評論 2 1
  • 深山藏古墓,石碑賽大樹。 樹怪似魔爪,森然碑旁立。 借問守墓人,大龜托阿誰? 墓人喜客至,欣然解吾問。
    殷七七閱讀 386評論 1 0
  • 廣州這幾天進(jìn)入了春夏秋冬自由切換模式,不過大街上的妹紙們都不懼嚴(yán)寒和酷暑,管你什么模式,都短褲、裙子出門,我就是要...
    米婭C閱讀 990評論 0 0

友情鏈接更多精彩內(nèi)容