IOS/Daily

[Swift] String to int

KHero 2023. 10. 22. 16:22

Int에서 String으로 변환하는 것은 간단하지만.("\(Number)")

String에서 Int값으로 변환하는 것은 Swfit에서는 비교적 까다롭다.

 

var intX: Int = 0
var stringX: String = "1"
// 1. intX = stringX (자료형이 맞지않음)
// 2. intX = Int(stringX) (Value of optional type 'Int?' must be unwrapped to a value of type 'Int')

1번은 당연히 안되고,

2번은 Int? 라는 옵셔널 타입을 언급한다. String에는 정수(Int)가아닌 ABC같은 문자가 들어갈 수도 있기 때문.

var intX: Int? = 0
var stringX: String = "1"

intX = Int(stringX)    //  intX : Optional(1)

intX의 타입을 int?로 변경하면 값자체가 Optional로 묶이게 된다.

 

var intX: Int = 0
var stringX: String = "1"
let intX = (stringX as NSString).integerValue

이런 방식으로 하는것이 개인적으로는 가장깔끔하며

 

var intX: Int = 0
var stringX: String = "1"

if let myNumber = NumberFormatter().number(from: stringX) {
	intX = myNumber.intValue
} else {
	print("Error")
}

이런방법으로 조건처리도 할 수 있다.