2017-08-20 1 views
1
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

    if component == 0 { 
     lbl1.text = pdata[0][row] 
     lbl1.adjustsFontSizeToFitWidth = true 
     img1.image = UIImage(named : pdata[0][row]) 
     price1.text = priceData[row] 
     total1 = Int(priceData[row]) ?? 0 

     } 

else if component == 1 { 
     lbl2.text = pdata[1][row] 
     lbl2.adjustsFontSizeToFitWidth = true 
     img2.image = UIImage(named : imgdata[row]) 
     price2.text = PriceData2[row] 
     total2 = Int(PriceData2[row]) ?? 0 

    } 

    TotalPrice.text = String(total1! + total2!) 



} 

Lorsque l'utilisateur rouleau sur 1 Segment alors total est à nil et app accidents comment puis-je stocker à la fois variable totale 1 et un total de 2 pour montrer la somme de price à l'utilisateurComment définir la valeur Total1 et Total2 sur l'étiquette lorsque l'utilisateur fait défiler les deux segments de la vue du sélecteur (dynamiquement)?

Répondre

1

Vous pouvez utiliser l'opérateur coalescent pour empêcher la force Déballer:

TotalPrice.text = String((total1 ?? 0) + (total2 ?? 0)) 

https://en.wikipedia.org/wiki/Null_coalescing_operator

+0

Si l'utilisateur Sélectionnez seulement le premier élément que la façon de montrer le prix ou l'utilisateur de ne sélectionner que 2 composants et troisième cAS e si l'utilisateur sélectionne les deux composants? – Amey

+0

Vous pouvez utiliser ce code: TotalPrice.text = String ((total1 ?? 0) + (total2 ?? 0)), j'ai mis à jour ma réponse – raver

+0

Thanx It Works :-) – Amey