IOS UIKit -0

김정현·2023년 4월 4일
0

UIKit

목록 보기
1/14

Bool

var isopen = false

if !isopen {      // (==true)가 생략 됨, !는 반전 효과 
}else{

}

Tuples

n짝, n쌍

var topTitle = ("메인화면", "mainIcon.png")  //()는 튜플

topTitle.0 //"메인화면"
 
var topTitle = (aa: "메인화면", "mainIcon.png")

topTitle.aa      //가시성이 좋음

optional

값이 있을 수도 없을 수도 있다.

var myage: Int? = 0 //?으로 옵셔널 표시

if myage == nil {
 	...
}

0이나 공백이 값이 없는게 아니다.

var a: Int? = 10         //옵셔널은 타입 추론이 되지 않음
var b: Int? = 10

var c = a + b

unwrapped, unwrapping

Int? -> Int, String? -> String 으로 변환한다.

//coalesce  만약 값이 있다면 사용하고 nil이라면 0으로 대체한다.
var c = (a ?? 0) + b   

//force unwrap, 값이 무조건 있다고 가정함. 확신없으면 사용 x
var d = a! + b!


//if Statements
if a != nil {       //값이 있을때만 받아와서 실행
	print(a!)    //값이 있을때만 받아오기떄문에 강제 unwrapping해도 괜찮음.
}
-> 10    //(a!)로 강제 언랩핑 안 했을경우에는 optional(10)으로 출력


//if let, if var
if let hasNumber = a {    //값이 있을때만 받아와서 실행. unwrapping까지 동시에 됨.
	print(hasNumber)
}
-> 20


//guard let, guard var
func abc() {
	guard let hasNumber = a else {  //guard는 값이 있어야만 아래 구문으로 이어짐
		return
    }

	print("end")
}

return은 가장 바깥 쪽에서 사용 불가. ( 클래스나 함수 안쪽에 있지 않음)

if let vs guard let

guard는 이 구문이 만족하지 않는다면 아래 코드도 실행하지않고 종료됨.
if는 만족하지 않더라도 if절 밖으로 나옴

operators

같은 타입끼리만 연산 가능하다. (Type safe 타입이 엄격하다.)
String도 + 연산 가능하다.

let aa = "hi"
let bb = " hello"
let cc = aa + bb 

//"hi hello"

소수 형태인 경우 %연산이 되지 않는다.

if b.truncatingRemainder(dividingBy: 2) == 0       //b가 소수형태일 경우 % 연산자를 사용할 경우 에러발생 
	print("짝수")
}else{
	print("홀수")
}

문자간 비교연산을 하면 아스키코드 값을 기반으로 참거짓을 판별한다

a < b     //true

unicode

숫자만 입력받을 수 있어야한다면,

let inputValue = "7"

if inputValue >= "\u{30}" && inputValue <= "\u{39}" {      //u{30}은 0이고, u{39}는 9이다. 
	print("숫자다")
}else{
	print("숫자가 아니다')
}

0개의 댓글