Swift 2.0+
ตอนนี้ด้วยSwift 2.0คุณสามารถใช้Float(Wage.text)
สิ่งที่ส่งคืนFloat?
ประเภทได้ 0
ชัดเจนมากขึ้นกว่าด้านล่างวิธีการแก้ปัญหาที่เพิ่งผลตอบแทน
ถ้าคุณต้องการ0
ความคุ้มค่าที่ไม่ถูกต้องFloat
ด้วยเหตุผลบางอย่างที่คุณสามารถใช้Float(Wage.text) ?? 0
ซึ่งจะกลับมาถ้ามันไม่ถูกต้อง0
Float
โซลูชันเก่า
วิธีที่ดีที่สุดในการจัดการสิ่งนี้คือการหล่อโดยตรง:
var WageConversion = (Wage.text as NSString).floatValue
ฉันสร้างขึ้นextension
เพื่อใช้สิ่งนี้ให้ดีขึ้นด้วย:
extension String {
var floatValue: Float {
return (self as NSString).floatValue
}
}
ตอนนี้คุณสามารถโทรvar WageConversion = Wage.text.floatValue
และอนุญาตให้ส่วนขยายจัดการสะพานให้คุณได้แล้ว!
นี่เป็นการใช้งานที่ดีเนื่องจากสามารถรองรับการลอยตัวจริง (อินพุตด้วย.
) และยังช่วยป้องกันไม่ให้ผู้ใช้คัดลอกข้อความลงในช่องป้อนข้อมูลของคุณ ( 12p.34
หรือแม้กระทั่ง12.12.41
)
เห็นได้ชัดว่าหาก Apple เพิ่ม a floatValue
ให้กับ Swift สิ่งนี้จะทำให้เกิดข้อยกเว้น แต่มันอาจจะดีในเวลานั้น หากพวกเขาเพิ่มในภายหลังสิ่งที่คุณต้องทำในการแก้ไขโค้ดของคุณคือลบส่วนขยายและทุกอย่างจะทำงานได้อย่างราบรื่นเนื่องจากคุณจะโทรไปแล้ว.floatValue
!
นอกจากนี้ตัวแปรและค่าคงที่ควรเริ่มต้นด้วยตัวพิมพ์เล็ก (รวมถึงIBOutlets
)