iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
自我挑戰組

一個令我自豪的App完成之路系列 第 5

問題整理(一)Day5

這邊把之前遇到的幾個問題做一個問題整理

  1. Computed Property

    1. Get and Set
    Class CountPrice{
    	var one_price:Int = 100
    	var total_price:Int{
    		get{return 0.7 * one_price}
    		set(newPriceValue){
    			one_price = total_price * (10/7)
    	}
    
    // 讀取時 使用get return 回傳值
    // 設定時 使用set內
    
  2. Init

    1. required init

      定義 Swift 類別時,子類別預設並不會繼承父類別的 initializer,除非滿足某些特殊的條件。

      故要使用required init 去要求後面的所有子類繼承init

      在使用init之前要確定所有的stored property都已經完成初始

      要符合以下兩個原則

      • 屬性的初始,必須在當初宣告屬性的類別內進行
      • 子類別要先完成自己屬性的初始,才可以進行父類別屬性的初始
    2. super.init

      使用super.init可以去繼承父類

  3. Self and self

    當使用小寫self代表是自身的value值

    使用大寫的Self代表是自身的type類型

  4. Where

    Swift中where用來設定約束條件、類型

    現在都用在if let、guard 都用 ","來代替where

    if let driver = ..... , let car = ...
    // 使用,來替代where作為約束
    

    參考連接:

    精於算計的 computed property(偽裝成變數的 function)

    防止絕技失傳的 required initializer

    Self vs self - what's the difference?


上一篇
從登入畫面開始做起(下)Day4
下一篇
讓UITableView來表演 Day6
系列文
一個令我自豪的App完成之路32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言