swift 屬性觀察器

簡單例子:

class TestClass{
var totalNumber:Int = 0{
      willSet{
          print(newValue)//newValue(自帶屬性)是新傳進(jìn)來的值竖般,這時(shí)totalNumber還沒有變成剛傳進(jìn)來的值
        }
      didSet {
         print(oldValue)//oldValue(自帶屬性)艰亮,這時(shí)totalNumber已經(jīng)改變迄埃,變?yōu)閭鬟M(jìn)來的值
     }

}

為了保存右邊中間那個(gè)價(jià)格數(shù)自己還想了很久怎么寫程序,因?yàn)槟莻€(gè)文本是一個(gè)字符串流译,它夾帶有一個(gè)幣種符號(hào)叠赦,剛開始我是這樣保存的,后來發(fā)現(xiàn)每次刷新就要截取出symbol這個(gè)不是數(shù)字的字符除秀,好麻煩

self.oldCurrentPrice = self.labelCurrentPrice.text!
self.labelCurrentPrice.text = "\(symbol)\(curentPrice)"

后來上司教我使用屬性觀察設(shè)計(jì)模式來對currentPrice 進(jìn)行觀察的值

var currentPrice: Double = 0 {               //當(dāng)前價(jià)格
        willSet {
            var marketPriceTrend: MarketPriceTrend
            let newPrice = newValue
            let trend = newPrice - currentPrice
            self.trendImage.hidden = false
            if trend > 0 {
                //走勢向上
                marketPriceTrend = MarketPriceTrend.Up
            } else if trend < 0 {
                //走勢向下
                marketPriceTrend = MarketPriceTrend.Down
            } else {
                //相等
                self.trendImage.hidden = true
                marketPriceTrend = MarketPriceTrend.Equal
            }
            
            let currentCurrencyType = self.selectedExchangeType.currencyType
            let currencyData = CurrencyData.getCurrencyData(currentCurrencyType)!
            let symbol = currencyData.symbol
            self.labelCurrentPrice.text = "\(symbol)\(newValue.toString())"
          //加載圖片升降,這里用的是枚舉返回UIImage
            self.trendImage.image = marketPriceTrend.imageTrend
          //  設(shè)置字體顏色棍好,也是用枚舉
            self.labelCurrentPrice.textColor = marketPriceTrend.trendColor
        }

marketPriceTrend枚舉:

/// 市場價(jià)格趨勢
enum MarketPriceTrend {
    case Up, Down, Equal
    
    var imageTrend: UIImage {
        switch self {
        case Up:
            return UIImage(named: "btn_market_BZSZ_arrow2")!
        case Down:
            return UIImage(named: "btn_market_BZSZ_arrow1")!
        case Equal:
            return UIImage(named: "btn_market_BZSZ_arrow2")!
        }
    }
    
    var trendColor: UIColor {
        switch self {
        case Up:
            return UIColor(hex: 0xFC461E)
        case Down:
            return UIColor(hex: 0x149073)
        case Equal:
            return UIColor(hex: 0xFC461E)
        }
    }
    

觀察模式很好用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末业稼,一起剝皮案震驚了整個(gè)濱河市低散,隨后出現(xiàn)的幾起案子熔号,更是在濱河造成了極大的恐慌朦蕴,老刑警劉巖吩抓,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疹娶,死亡現(xiàn)場離奇詭異,居然都是意外死亡额港,警方通過查閱死者的電腦和手機(jī)锹安,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門痕貌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事哺徊÷渥罚” “怎么了轿钠?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長症汹。 經(jīng)常有香客問我贷腕,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮旺矾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柬帕。我一直安慰自己陷寝,他們只是感情好爆安,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布咖耘。 她就那樣靜靜地躺著,像睡著了一般缘揪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袖裕,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天急鳄,我揣著相機(jī)與錄音,去河邊找鬼坎藐。 笑死哼绑,一個(gè)胖子當(dāng)著我的面吹牛蛀恩,可吹牛的內(nèi)容都是我干的壳咕。 我是一名探鬼主播囱井,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼程帕,長吁一口氣:“原來是場噩夢啊……” “哼愁拭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起惜论,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乾巧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體植康,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡榄攀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年吕嘀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了趁曼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奢驯,靈堂內(nèi)的尸體忽然破棺而出瘪阁,到底是詐尸還是另有隱情管跺,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布壶愤,位于F島的核電站征椒,受9級特大地震影響勃救,放射性物質(zhì)發(fā)生泄漏勃黍。R本人自食惡果不足惜覆获,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凝果,春花似錦、人聲如沸骂删。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芥被。三九已至,卻和暖如春匹中,著一層夾襖步出監(jiān)牢的瞬間豪诲,已是汗流浹背焊切。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荔仁,地道東北人乏梁。 一個(gè)月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓揖曾,卻偏偏與公主長得像练链,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子错妖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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

  • 屬性觀察器可讓我們在使用屬性時(shí)候再登,在希望一個(gè)屬性發(fā)生改變時(shí)候進(jìn)行某些操作锉矢。也就是一些小的代碼塊,可在一個(gè)屬性值即可...
    小黑Swift閱讀 3,620評論 1 0
  • OC里面可以重寫屬性的get和set方法炎疆,swift里沒有對應(yīng)的寫法,但有屬性觀察器屬性觀察器會(huì)監(jiān)控和響應(yīng)屬性值變...
    Maggie的小蝸居閱讀 583評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,129評論 25 707
  • title: "Swift 中枚舉高級用法及實(shí)踐"date: 2015-11-20tags: [APPVENTUR...
    guoshengboy閱讀 2,583評論 0 2
  • 01 昨天和朋友聊天耳舅,說到寒假回家最怕的是什么事浦徊。他說辑畦,怕收紅包蚯妇。 我驚訝:“竟然不是催你考研箩言、催你找女朋友陨收、叫你...
    海西情歌閱讀 219評論 1 2