분류 전체보기
@IBOutlet @IBAction에 대하여
스위프트에서 어플을 만들 때 변수나 상수 앞에 @IBAction과 @IBOutlet이 붙는 것을 볼 수 있다. 특히 컴포넌트들을 끌어다 놓을 경우 자동으로 이러한 것들이 생기는 것을 볼 수 있다. 과연 그럼 무슨 의미를 가지고 있을까? @IBOutlet과 @IBAction의 의미 둘의 역할은 아시다시피 StoryBoard와의 연결고리를 담당한다. 변수나 함수를 정의할 때 앞에 @IBAction 또는 @IBOutlet 키워드를 통해 StoryBoard에서 버튼이나 컴포넌트와의 연결이 가능하게 해주는 역할을 한다. IBAction은 이벤트(터치, 드래그 등등)가 일어나 호출된 경우 Action(추가, 수정, 삭제)를 정의한 것이다. IBOutlet은 값에 접근하기위한 변수라고 생각하면 쉽다. 앞에 붙은 IB..
스위프트 - 프로그래머스 1. 소수찾기
출처 programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 문제설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한사항 n은 2이상 1000000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 입출력 예 #1 1부터 10 사이의 소수는 [2, 3,..
스위프트(Swift) - 구조체와 클래스 Ⅱ. 프로퍼티 - 연산 프로퍼티
스위프트에선 앞서 소개한 저장프로퍼티 외에 연산 프로퍼티를 정의하여 사용할 수 있다. 연산 프로퍼티(computed property)는 필요한 값을 제공한다는 점에서 저장 프로퍼티와 같지만, 실제 값을 저장했다가 반환하지는 않고 다른 프로퍼티의 값을 연산처리한 후 간접적으로 값을 제공한다. 이 때 프로퍼티의 값을 참조하기 위해 내부적으로 사용하는 구문이 get 구문이다. 함수와 비슷해 내부적으로 return 키워드를 사용해 값을 반환하는데, 여기서 반환되는 값이 프로퍼티가 제공하는 값이된다. 또한, 연산 프로퍼티는 선택적으로 set 구문을 추가할 수도 있다. 이는 연산 프로퍼티에 값을 할당하거나 변경하고자 할 때 실행되는 구문이다. 연산 프로퍼티 자체가 값을 저장하지 않기 때문에 이 때 할당되는 값은 연..
스위프트(Swift) - 구조체와 클래스 Ⅱ. 프로퍼티 - 저장프로퍼티
이전 포스팅에서 프로퍼티는 값을 저장하기위해 클래스나 구조체 내에서 정의된 변수나 상수라고 말한 적이 있다. 사실 이 것은 프로퍼티 역할의 일부에 불과하다. 자세히 말하자면 프로퍼티의 역할은 값을 제공하는 것이다. 굳이 저장이 아니라 제공한다고 한 것은 프로퍼티 중 일부는 값을 저장하진 않지만 값을 제공하는 특성을 가지기 때문이다. 여기서 값 저장 여부를 기준으로 프로퍼티가 나뉘게 되는데 저장 프로퍼티(Stored Property)와 연산 프로퍼티(Computed Property)이다. 이 뿐만 아니라 구조체나 클래스를 만들 때 인스턴스를 생성하는데 이 인스턴스에 소속되는 프로퍼티를 인스턴스 프로퍼티(Instance Property), 클래스나 구조체 자체에 소속되어 값을 가지는 프로퍼티를 타입 프로퍼티..
스위프트(Swift) - 구조체와 클래스 Ⅰ. 기본 개념
구조체와 클래스는 하나의 큰 코드 블록이다. 이 안에 변수나 상수를 넣어 값을 저장할 수도, 함수를 넣어 기능을 저장할 수도 있다. 값을 저장할 수는 없지만 특정 기능을 실행할 수 있는 함수와, 값을 저장할 수 있지만 혼자서 특정 기능을 실행할 수 없는 변수 상수의 특성을 모아놓은 것이라고 이해하면 쉽다. 구조체와 클래스 내에서 정의된 변수와 상수, 그리고 함수는 부르는 명칭이 조금 다르다. 변수, 상수가 구조체나 클래스 내부에 정의되면 프로퍼티(Property)라는 이름을 가지게 된다. 마찬가지로 함수 또한 구조체와 클래스 내부에 정의되면 펑션(Function)이 아니라 메소드(Method)라고 불린다. 그 이유는 변수와 상수, 함수가 구조체나 클래스 내에 들어가면 특별한 성격을 가지기 때문이다. 프로..
스위프트(Swift) - 입출력 방법(readLine)
스위프트에선 입력방법으로 readLine() 함수를 제공한다. 간단하게 설명하자면 입력받은 것을 Optional String형으로 return하는 함수이다. 여기서 'EOF'란 'End of File'의 약자로 파일의 끝을 의미하는데 터미널에서 엔터가 입력되면 EOF가 처리된다. 즉, 엔터가 입력되면 readLine()이 끝나게 되는 것이다. 이를 사용해 입력하는 예시를 살펴보자. 정수(Int) 한 개 입력받기 let input = readLine() print(type(of: input)) let inputOut = input! print(type(of: inputOut)) let intVar = Int(inputOut) print(type(of: intVar)) let result = intVar! ..