1) 자료형 변환
- 문자열을 Int형으로 변환할 땐 Int()로 변환하면 됩니다. 하지만 문자열 자체가 nil일 가능성이 있기 때문에 옵셔널 변수를 사용해야 합니다.
let myString7 = "123"
let myStrToInt: Int? = Int(myString7) // nil이 발생할 수 있기 때문에 자료형 선언할 때 옵셔널 변수 둘 것 (?)
- Int형으로 관리된 것을 Float형으로 변환하려고 할 때에도 마찬가지로 Float를 넣어주면 됩니다.
마찬가지로 여기서는 myStrToInt 상수가 myString7을 받을 때 nil일 가능성을 염두하여 옵셔널 변수를 사용했으므로
Float로 변환할 때에도 이 상수는 nil이 아니다! 라고 강제 언래핑을 해줘야 합니다.
let myFloat: Float? = Float(myStrToInt!) // 느낌표를 두어 강제 언래핑을 진행한다. 해당 변수가 nil일 수 없음을 나타냄
2) NS계열 타입은 클래스로 가지고 옵니다.
- NSNumber : 모든 숫자 데이터형을 담을 수 있는 클래스입니다. (Int, Float, Double,..)
var myInt2: Int = 10
var myIntNumber = NSNumber(value: myInt2) // NSNumber는 모든 타입의 숫자 데이터를 담을 수 있다.
value 값으로 10을 넣어둔 상태에서 해당 값을 다른 숫자 자료형으로 변환할 필요없이 가져올 수 있다.
var tempFloat = myIntNumber.floatValue // Float형
var tempInt = myIntNumber.intValue // Int형
var tempDouble = myIntNumber.doubleValue // Double형
- NSValue : 모든 데이터형을 래핑하는 클래스(기본자료형, 클래스(객체), 구조체, 열거형)
let rangeValue = NSRange(location: 0, length: 3) // NS 객체는 클래스 객체
let rangeValueObject = NSValue(range: rangeValue)
let tmpRange = rangeValueObject.rangeValue
rangeValue에는 0~3까지의 범위를 지정하는 클래스 객체를 넣어두고 거기에 들어간 값을 객체로 추출해내는걸 NSValue를 통해
rangeValueObject에 넣어둔다. (범위를 나타내는 클래스를 객체로 만든 것)
사례는 아래와 같습니다.
// 문자열의 범위를 지정할 때 NSRange를 많이 사용함
var myNSString: NSString = NSString(string: "Swift Programming")
let subStr = myNSString.substring(with: rangeValue) // 0 ~ 3 가져올 수 있음
NSString 클래스 객체를 사용해서 문자열을 지정해 넣어둔 다음에 그 변수에 대해서 위치(0), 길이(3)에 해당하는 범위만큼
뽑기 위해서 rangeValue를 이용합니다.
그러면 Swi까지 반환해 낼 수 있습니다.
'Swift-IOS' 카테고리의 다른 글
Swift : func (함수)에 대해서 (0) | 2023.01.17 |
---|---|
Swift: array, dictionary, set, tuple, enum (0) | 2023.01.17 |
반복문 (0) | 2023.01.17 |
옵셔널 변수 (0) | 2023.01.17 |