2017-09-04 58 views
0

第一次使用枚舉開關工作,所以有幾個問題。如何在另一個函數中使用枚舉開關語句

我正在尋找像這樣在tableView函數中使用這個switch語句。首先,在使用枚舉開關之前是否聲明變量已打開?如果是這樣,我是否將開放變量傳遞給開關或使用新名稱創建開關並傳入開放變量?第三,我如何收到交換機的價值?

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "FCT") as! FoodCellTwo 

    let each = resultss[indexPath.row] 

    var open: GMSPlacesOpenNowStatus = each.openNowStatus 

    enum open : Int { 


     /** The place is open now. */ 
     case yes 

     /** The place is not open now. */ 
     case no 

     /** We don't know whether the place is open now. */ 
     case unknown 
    } 

    cell.nameLabel.text = each.name 

    return cell 
} 
+0

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.html#//apple_ref/doc/uid/TP40014097-CH12-ID146 – BangOperator

+0

它十分明確, ,打開狀態可以,現在打開,即YES,現在關閉,即情況NO,如果打開狀態不知道,則是未知。如果你有特定的語法問題,你可以參考上面的鏈接,或者提出另一個問題。 – BangOperator

+0

我改寫了我的問題。 – jonpeter

回答

1

這裏是你如何使用枚舉

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = UITableViewCell() 
     let status = openStatus // Get you open status or you could just use switch(openStatus) 
     switch status { 
     case .yes: 
      cell.textLabel?.text = "This places is open" 
     case .no: 
      cell.textLabel?.text = "This places is closed now" 
     case .unknown: 
      cell.textLabel?.text = "No idea about open status" 
     } 
     return cell 
    } 

或者

我建議你在GMSPlacesOpenNowStatus編寫擴展這樣

extension GMSPlacesOpenNowStatus { 
    func getStringTitle() -> String { 
     switch self { 
     case .yes: 
      return "This places is open" 
     case .no: 
      return "This places is closed now" 
     case .unknown: 
      return "No idea about open status" 
     } 
    } 
} 

和使用這個擴展名像

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = UITableViewCell() 
     let status = openStatus 
     cell.textLabel?.text = status.getStringTitle() 
     return cell 
    } 
+0

這就是我希望的答案,哈哈。謝謝你,邦!我決定採用第一種方法,但對於那些希望使用相同方法的人,請記住在代碼中指定您自己的UIlabel。否則,在模擬過程中,你的用戶界面會變得混亂。 – jonpeter