반응형 ios7 Swift - 모나드 Swift의 모나드가 갖춰야 하는 조건은 다음과 같다 타입을 인자로 받는 타입(특정 타입의 값을 포장) 특정 타입의 값을 포장한 것을 반환하는 함수(메소드)가 존재 포장된 값을 변환하여 같은 형태로 포장하는 함수(메소드)가 존재 무슨 말인지 하나도 이해가 안 갈 것이다. 모나드를 이해하는 출발점은 값을 어딘가에 포장하는 개념을 이해하는 것부터 출발한다. 스위프트에서 모나드를 사용한 예시 중 하나가 옵셔널이다. 따라서, 옵셔널을 파헤쳐보며 컨텍스트, 함수객체를 이해한 뒤 모나드를 다시 알아본다. 컨텍스트 컨텍스트(Context)의 사전적 정의는 '맥락', '문맥' 등이다. 이번 파트에서 컨텍스트는 '컨텐츠(Contents)를 담은 무언가'를 의미한다. 즉, 물컵에 물이 담겨있는 상황에서 물은 컨텐츠이고 물.. 2022. 1. 22. Swift의 연산자 스위프트의 연산자는 특정한 문자로 표현한 함수, 따라서 특정 연산자의 역할을 프로그래머의 의도대로 변경할 수 있다. 다른 언어와 유사한 연산자에 대한 설명은 생략하였다. 1. 연산자의 분류 분류 설명 예시 단항 연산자 피연산자가 한 개인 연산자 !A 이항 연산자 피연산자가 두 개인 연산자 A + B 삼항 연산자 피연산자가 세 개인 연산자 A ? B : C 전위 연산자 연산자가 피연산자 앞에 위치하는 연산자 !A 중위 연산자 연산자가 피연산자 사이에 위치하는 연산자 A + B 후위 연산자 연산자가 피연산자 뒤에 위치하는 연산자 A! ❗스위프트는 띄어쓰기도 중요한 언어. A != B 와 A! = B는 전혀 다른 의미이며 A > B? A : B 와 같이 사용하면 오류가 발생한다. A > B ? A : B와 같.. 2022. 1. 13. iOS - 객체 제어 Label과 Button을 클래스에 연결하면 각각 @IBOutlet, @IBAction이 클래스에 추가되는 것을 본 적이 있을 것이다. 이 '@' 키워드로 시작하는 것을 Annotation이라고 하며 변수나 메소드의 성격을 컴파일러에게 알려주는 역할을 한다. @IBOutlet은 Property에, @IBAction은 Method에 각각 추가되는데 이는 IB(Interface Builder)에 관련된 것이라는 의미를 나타낸다. 이렇게 IB Annotation이 붙은 Property나 Method들은 처음 앱이 Build될 때 컴파일러가 확인하고 연결 정보를 찾아 IB의 객체와 서로 연결해준다. 연결된 정보들은 Xcode의 Connection Attribute 탭에서 확인할 수 있다. 이 탭은 다른 Insp.. 2021. 11. 7. iOS와 코코아 터치 프레임워크 간단한 토이 프로젝트, 클론코딩 등의 iOS 애플리케이션을 만들어 보았다면 UIApplication, UIViewController, UILable, UIButton등의 클래스를 이용해본 적이 있을 것이다. 이는 Swift 문법에서는 배우지 않는다. 실제로, 플레이그라운드에서 let btn = UIButton() let title = UILabel() 와 같은 코드를 작성해보면 존재하지 않는 클래스라는 오류가 발생할 것이다. 왜냐하면, 이들 클래스(UI로 시작하는)는 모두 UIKit Framework에 속해있기 때문에 import UIKit을 상단에 작성해야 한다. 뿐만 아니라, 네트워크나 날짜 연산 등의 기능 처리를 위해서는 Foundation Framwork, 애니메이션 처리를 위해서는 Animati.. 2021. 11. 6. 이전 1 2 다음 반응형