본문 바로가기

Swfit98

Closure를 사용한 UI element 생성하기 Swift 문법에서는 closure가 빠지지 않고 등장합니다. Function의 parameter로도 사용되고, return type으로도 사용이 됩니다. 그런 closure가 UI element를 생성하는데에도 사용이 될 수 있습니다. 이 주제는 얼마 전 Swift 개발자로서 면접을 보았을 때 질문을 받았던 내용인데, 당시에는 이 부분에 대해 잘 알지 못해서 제대로 답변을 하지 못했습니다. 하지만 해당 사항을 물어보셨다는 것은 중요한 부분일 것이라고 생각되어 바로 알아보았습니다. 먼저 closure를 이용해서 UI element를 만드는 방법은 아래 코드와 같습니다. private let myImageView: UIImageView = { // {} 중괄호 부분이 closure입니다. let image.. 2022. 10. 19.
Array 생성하는 방법과 기본 기능들 Array 생성하기 Array를 생성하는 방법에는 아래와 같이 크게 세 가지 방법이 있습니다. 생성 방법#1 1 var numbers: Array = Array() cs 생성 방법#2 1 var names = [String]() cs 생성 방법#3 1 var height: [Int] = [] cs 처음에 저는 두번째 방법만 배워서 Stackoverflow에서 첫번째 형태를 보았을 때 당황스러웠는데, 알고보니 arrary를 선언하는 방법 중에 하나였답니다. 선언한 Array에 들어갈 수 있는 요소들은 처음에 설정한 기본 데이터 타입과 일치하는 요소들만이 들어갈 수 있습니다. 즉, String 으로 설정한 경우에는 문자열만이 들어갈 수 있고, Int로 설정한 경우에는 실수만 들어갈 수 있습니다. Array .. 2022. 10. 18.
Function Type에 대해 알아보기 안녕하세요 Swift에서 반드시 알아야 하는 Function Type에 대해 알아보겠습니다. Java에서는 알지 못하다가 Swift를 하며 알게된 개념 중 하나가 Function Type입니다. Integer type, String type과 같은 "type"이지만, 모양이 독특해서 생소하게 느껴졌습니다. Int type의 상수를 선언할 때는 아래와 같이 작성하면 됩니다. let myInt: Int = 10 Function type은 아래와 같이 생겼습니다. 1. () -> Void 2. (Int) -> Int 3. (String, String) -> Bool 위의 예시들이 모두 Function Type입니다. 1번은 parameter도 return value도 없는 형태의 function을 의미합니다... 2022. 10. 17.
Light, dark 모드 별 사용될 backgroundimage 설정하기 ligtht mode와 dark mode 별로 다른 background image를 사용하고 싶다면 아래와 같이 설정 해주면 됩니다. Assets에서 Appearance -> Any, Light, Dark를 선택하면 각 세 경우에 어떠한 사진을 사용할 것인지 설정할 수 있습니다. 2022. 10. 7.
Observed property: willSet & didSet 지난번 글에서 get을 이용해 특정 property의 값을 계산하여 얻을 수 있고, set을 이용하여 값을 설정할 수 있다는 것을 알게 되었습니다. Swift에서는 property의 값이 변경(set)될 때 이를 감지하는 메서드도 제공을 하고 있습니다. 값이 변경되기 직전과 값이 변경된 직후를 감지할 수 있는데, 이런 기능이 가능한 property를 Observed property 라고 부릅니다. Observed property를 선언하게 되면, 감시되는 프로퍼티라는 명칭 그대로 어떠한 변화가 있기 전이나 후를 감시할 수 있게 됩니다. Computed property의 경우는 property 선언 시에 값을 꼭 할당할 필요가 없었습니다. 반면에 Observed property는 선언 시에 값을 할당해 주.. 2022. 10. 4.
Computed property - get, set 알아보기! Swift에서의 get과 set은 Java의 getter, setter와 동일한 기능을 합니다. 사용하는 이유도 거의 동일한 것 같았습니다. 외부에서 property에 직접적으로 접근하는 것을 막기도 하고 값을 변경(set)하기 전에 validation을 하기 위한 용도가 되기도 하구요. 다만 독특하게 computed property라고 하여 property 자체에 마치 method처럼 get과 set을 설정해 주게 됩니다. var numberOfStudents: Int { get{ return totalNumberInClass - 1 } set { print(newValue) } } 위의 구문처럼 사용하는데, 상당히 생소하게 느껴졌습니다 ㅎㅎ 곧 적응하겠지만요 이렇게 property의 값을 "계산"해서.. 2022. 9. 30.
반응형