기초 18

IBOutlet과 IBAction의 차이

iOS 개발을 하면서 Xcode에서 Interface Builder를 사용해 UI 요소를 연결하다 보면, IBOutlet과 IBAction이라는 용어를 자주 접하게 됩니다. 이 두 용어는 스토리보드와 코드를 연결하는 역할을 합니다. IBOutletIBOUtlet은 " Interface Builder Outlet "의 줄임말 입니다. 스토리 보드나 XIB 파일에 있는 UI요소를 접근하고 제어하게 해 줄수 있는 역할을 합니다. 예시)UIButton, UILabel IBActionIBAction 은 " Interface Builder Action" 의 줄임말 입니다. 주로 버튼을 누르거나 슬라이더를 조작할 때 발생하는 이벤트를 처리하기 위해 사용됩니다.  IBActionIBOutlet역할UI 요소의 이벤트에 ..

기초 2024.12.01

스택구조

스택은 LIFO 구조를 가진 자료구조중 하나 입니다. LIFO는 (Last In, First Out) 의 약자 입니다.  즉 마지막에 들어온 데이터가 가장 먼저 나가는 방식입니다. 주요 동작으로는  Push : 데이터를 스택에 추가 Pop: 스택에서 가장 마지막에 추가된 데이터를 제거 Peek: 스택의 가장 위에 있는 데이터를 확인 isEmpty: 스택이 비었는지 확인이 스택을 활용하는 상황은 다음과 같습니다. 1.뒤로가기: 페이지 이동이 스택으로 관리되기 때문입니다. 2.문자열 괄호 검사:코드에서 괄호의 짝이 맞는지 확인하는 알고리즘에서 스택이 사용됩니다. 3. 재귀 호출 관리: 프로그래밍 언어는 함수 호출을 스택으로 관리합니다. 4. 역순 출력: 데이터를 뒤집에서 출력 할 때 스택을 활용합니다.  S..

기초 2024.11.15

13.string Editing

메소드를 활용하여 문자열을 편집하겠습니다. var str = "Hello"이 코드에 새로운 문자나 문자열을 이어주고 싶다면 str.append(",")  이런식으로 append 문자열을 사용합니다. 실행 후 결과를 보면  "Hello,"  이라는 결과값이 나왔습니다. 규먼트로 이어준 결과값이 연결된 것을 확인할 수 있습니다. let s = str.appending("Swift") append 와 appending 이라는 메소드가 있습니다. 이 두 메소드의 차이는  append 인 메소드는 리턴 타입이 없습니다. 다시말해 값을 리턴하지 않는다는 것 입니다. 반면 appending 메소드는 string 타입을 리턴합니다. append 메소드는 파라미터로 전달한 문자열을  대상문자열에 바로 연결합니다 하지만 ..

기초 2024.06.02

12. string

Hello, world  우리는 이걸 문자열이라고 인식할 수 있지만 스위프트에서는 문자열이 아닙니다. "Hello, world"  스위프트에서 문자열은 이렇게 큰따옴표로 감싸야 합니다. 문자열은 항상 String 타입으로 추론됩니다. 문자열 리터럴은 2가지가 있습니다. Singleline String Literal : 하나의 큰 따옴표로 시작해서 하나의 큰 따옴표로 끝납니다. Multiline Literal은 " " " 큰따옴표 3개로 시작합니다.let multiline = """asdfkjlwejrlkwnea,mrn,swamnlm,fsanlksewjlrfjlkewsldsaf"""또한 큰따옴표 3개랑 같은 라인에 있으면 안됩니다. 예제처럼 아래로 한칸 내려야 합니다. 또한 마지막도 큰따옴표가 문자열 뒤에..

기초 2024.06.02

11.Functions & Closures

함수 함수를 가장 단순하게 정의해보면 특정 기능을 수행하는 코드조각 입니다. 프로그래밍은 수학에서 많은 개념을 가지고 왔는데 함수도 마찬가지 입니다. parametor이라 부르는 입력값이 있고 특정 기능을 수행하는 code가 있고 Return Value라고 하는 결과도 있습니다. 코드로 Hello라는 문자열을 출력해보겠습니다. print("Hello") 이 코드에서 print가 바로 함수입니다. print 함수는 우리가 적은 값을 콘솔에 출력해 줍니다. 함수의 장점자주 사용하는 기능을 함수로 구현해 놓으면  언제든지 반복해서 사용할 수 있습니다. Swift Standard Library스위프트에는 swift standard library 가 내장되어 있습니다. 여기에는 다양한 기본함수가 구현되어 있습니다..

기초 2024.06.02

10.Optionals

Optionalslet stock 위의 예제에서 값을 넣지 않으면 형식추론으로 타입을 유추해야하는데 단서가 되는 값이 없습니다. 그렇기 때문에 컴파일 에러가 납니다. let stock: int 이런식으로 타입을 선언하면 에러는 사라집니다. 하지만 상수에는 아무 값도 저장되어있지 않기때문에 print(stock) 을 출력하게 되면 컴파일에러가 나게 됩니다. 이런 타입을 Non-optional Type이라고 합니다 변수와 상수는 값을 읽기전에 반드시 초기화 해야 합니다. 또한 변수와 상수는 항상 타입에 맞는 값을 가지고 있어야 합니다.   Optionals typelet str: String = "swift" 이건 non-optional Type입니다. non-optional type 은 항상 값을 가져야 ..

기초 2024.06.02

9.control Tranfer Statements

제어전달문제어전달문은 조건문과 반복문에서 사용하며, 코드의 실행흐름을 바꾸는 역할을 합니다. 예제를 하나 적어보겠습니다. for index in 1...100{ print("start") if index 10 { break } print("end")} 코드의 흐름을 확인해 보겠습니다. 1에서 100까지 반복하는 코드이며 매번 반복을 시작할 때 마다 start를 출력하고 있습니다. 반복상수에서는 index가 5보다 작으면 contiune 가 출력됩니다. 게속 반복하다 반복상수가 11이 되면 브레이크가 호출되며  브레이크는 호출 즉시 코드를 끝내는 역할을 가지고 있습니다. break문위에서 설명했지만 브레이크는 호출 즉시 코드를 끝냅니다 예제를 하나 적어보겠습니다. l..

기초 2024.06.02

8.Range Operators

Closed Range Operator한글로 번역하면 닫힘범위 라고 부릅니다. 문법으로 보면 3가지 형태가 있습니다. lowerBound ... upperBoundlowerBound......upperBoundlowerBound는 시작위치 upperBound는 종료위치 입니다.첫번째 예제처럼 이항연산자로 적으면 시작범위 부터 종료범위까지 만듭니다. 두번째처럼 단항후치연산자로 만들게 되면 시작위치에서 시작하는 범위로 만들게 됩니다.종료위치는 연산자를 실제로 사용할때 해당코드에 따라 결정됩니다. 세번째처럼 단항전치연산자로 사용하면 종료위치에서 끝나는 범위로 만들게 됩니다.시작위치는 두번째 연산자처럼 해당 코드에 따라 결정됩니다. 사용 예시를 만들어 보겠습니다. 1 ... 10 너무 간단하게 만들어졌습니다. ..

기초 2024.06.02