2015-11-19 12 views
6

स्विफ्ट में मैं int को स्ट्रिंग और रिवर्स में कैसे परिवर्तित करूं और परिणाम प्रदर्शित करूं?

कार्यक्रम एफ से सी और रिवर्स को बदलने का अनुमान है। स्विच के साथ इसे चालू से बदलता है और लगता है कि सी से एफ और ऑफ होना सी है और टेक्स्ट फ़ील्ड के नीचे # दर्ज करना है। सबमिट बटन पर क्लिक करते समय यह टेक्स्ट फ़ील्ड में जो कुछ लेता है उसे एल्गोरिदम को पूर्ववत करता है और फिर उसे टेक्स्टफील्ड में प्रदर्शित करता है।

मेरा मानना ​​है कि रूपांतरण सही तरीके से चल रहा है लेकिन वास्तविक परिणाम प्रदर्शित नहीं करेगा। या जिस तरह से इसे परिवर्तित किया जा रहा है वह गलत है।

@IBOutlet weak var buttonClicked: UIButton! 
@IBOutlet weak var mySwitch: UISwitch! 
@IBOutlet weak var myTextField: UITextField! 

@IBOutlet weak var User: UITextField! 



func stateChanged(switchState: UISwitch) { 
    if switchState.on { 
     myTextField.text = "Convert to Celius" 
    } else { 
     myTextField.text = "Convert to Farheniet" 
    } 
} 

@IBAction func buttonClicked(sender: UIButton) { 
    if mySwitch.on { 
     var a:Double? = Double(User.text!) 
     a = a! * 9.5 + 32 
     User.text=String(a) 


     mySwitch.setOn(false, animated:true) 
    } else { 
     var a:Double? = Double(User.text!) 
     a = a! * 9.5 + 32 
     User.text=String(a) 

     mySwitch.setOn(true, animated:true) 
    } 

} 
+1

अच्छी तरह से पहला मुद्दा मैं सही देखता हूं कि आप स्विच स्थिति के बावजूद एफ से सी परिवर्तित कर रहे हैं। क्या आपके मुद्दे पर और कुछ था? – Tyrelidrel

+0

ठीक है, मैं क्या देखता हूं कि रूपांतरण कार्य दोनों मामलों में गलत है। यह सी = (एफ --32) * 5/9 और एफ = (सी * 9/5) + 32 होना चाहिए –

उत्तर

4

मैं एक्सकोड (6.4) का पुराना संस्करण उपयोग कर रहा हूं, इसलिए मेरा कोड आपके से थोड़ा अलग होगा। जो मैं आपके फ़ंक्शन बटन को समझता हूं उससे क्लाउड को UIButton के AnyObject instend का तर्क लेना चाहिए। इसके अलावा आप अपने कोड में फ़ंक्शन स्थिति को कॉल नहीं करते हैं। निम्नलिखित कोड को प्राप्त करने में आपकी सहायता करनी चाहिए जो आप करने की कोशिश कर रहे हैं।

@IBOutlet weak var mySwitch: UISwitch! 
@IBOutlet weak var myTextField: UITextField! 

@IBOutlet weak var User: UITextField! 



override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    // sets the textfield to the intended conversion on load. 
    if mySwitch.on { 
     myTextField.text = "Convert to Celius" 
    } 
    else { 
     myTextField.text = "Convert to Farheniet" 
    } 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

// changes the myTextFiled text to the intended conversion when the switch is manually switched on or off 
@IBAction func switched(sender: AnyObject) { 
    if mySwitch.on { 
     myTextField.text = "Convert to Celsius" 
    } 
    else { 
     myTextField.text = "Convert to Fahrenheit" 
    } 
} 
// changes the myTextField text to intended reverse conversion after the buttonClicked func is completed. 
func stateChanged(switchState: UISwitch) { 
if switchState.on { 
    myTextField.text = "Convert to Celsius" 
} 
else { 
    myTextField.text = "Convert to Fahrenheit" 
    } 
} 

// do the intended conversion(old version of XCode 6.4) 
@IBAction func buttonClicked(sender: AnyObject) { 
    if mySwitch.on { 
     var a = (User.text! as NSString).doubleValue 
     a = (a-32)*(5/9) 
     User.text="\(a)" 
     mySwitch.setOn(false, animated:true) 
     stateChanged(mySwitch) 
    } 
    else { 
     var a = (User.text! as NSString).doubleValue 
     a = a * (9/5) + 32 
     User.text="\(a)" 
     mySwitch.setOn(true, animated:true) 
     stateChanged(mySwitch) 
    } 
} 
संबंधित मुद्दे