Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

String format optional parameter in Swift

Tags:

swift

Ola,

I don't have to much exp with the Swift language. I want to print into a String some variables and some of them are optional.

func onRegPin(timeOut: Int64, pin: String?)->()
{
  String(format: "Timeout: %d  Pin: %@", timeOut, pin!)
}

If the pin is nil at runtime I got some assert or something.

Is there a way to print this optional parameters using String ?

like image 667
Colateral Avatar asked Sep 13 '25 23:09

Colateral


2 Answers

You can do this:
pinValue is an empty string if pin is nil otherwise the unwrapped pin value

func onRegPin(timeOut: Int64, pin: String?)->()
{
  let pinValue = pin ?? ""
  String(format: "Timeout: %d  Pin: %@", timeOut, pinValue)
}
like image 110
vadian Avatar answered Sep 15 '25 15:09

vadian


 func onRegPin(timeOut: Int64, pin: String?)->()
    {  if let pin = pin{
      String(format: "Timeout: %d  Pin: %@", timeOut, pin)
     }else{
      String(format: "Timeout: %d  No Pin ", timeOut)
      }
    }

UPDATE: Using default Parameter

func onRegPin(timeOut: Int64, pin:String?="No pin"){
  String(format: "Timeout: %d  Pin: %@", timeOut, pin!)
}

If pin is nil call function only with timeOut

onRegPin(3423)

else if pin is not nil:

onRegPin(3423, pin:"Pin")
like image 31
Hamza Ansari Avatar answered Sep 15 '25 17:09

Hamza Ansari