iOS 46

Swift) 열거형 enum

열거형 : enum [Enumberations] - 관련있는 데이터들이 멤버로 구성되어 있는 자료형(type) 객체 언제 사용할까? - 원치 않는 값이 잘못 입력되는 것을 방지 - 입력 받을 값이 한정되어 있을 때 - 특정 값 중 하나만 선택하게 할 때 예시) 색깔선택(빨,노,파,초 ...), 성별선택(남,여) 등 선언 방법 ① 한줄로 나열 enum Compass { case North, South, East, West } ② 각각의 case문에 멤버들 나열 enum Compass { case North case South case East case West } enum Compass { case North case South case East case West } var north : Compass =..

iOS/Swift이론 2022.04.19

[Swift/iOS] 간단한 To Do List 앱

테이블 뷰로 만드는 To Do List (Check List) - 네비게이션 컨트롤러 - 알러트 창으로 할 일을 추가 - 셀 스와이프로 제거 - 수정 화면에서 셀 제거 및 순서 변경 - 앱을 종료 후 재실행 시 데이터 유지 완성 화면 ▼ ▼ 참고할 만한 이전 글들 네비게이션 컨트롤러 [Swift/iOS프로그래밍] navigation controller 4가지 방법, 세그 vs 코드,push vs present 스위프트로 화면전환을 구현하는 방식 중에 네비게이션 컨트롤러가 있다. 세그로 구현하는 것과 코드로 구현하는 것이 있는데 이 중에서도 푸쉬와 프레젠트라는 방식이 있다. 오늘은 이런 4가 yejprogramming.tistory.com 뷰 간 데이터 전달 [Swift/iOS프로그래밍] 뷰와 뷰 사이 데..

iOS/app 2022.04.17

Swift) 프로토콜과 델리게이트 Protocol, Delegate

Delegate : 대리자, 조력자라는 사전적 의미를 가지고 있다. 과연 무슨 소리일까? 객체 지향 프로그래밍에서 하나의 객체가 모든 일을 처리하지는 않는다. delegate은 바로 처리해야 할 일들 중 일부를 다른 객체에 넘겨주는 역할을 한다. delegate 사용법 class가 delegate을 채택한다. 위임자를 설정한다. 그 delegate 안에 메서드를 구현한다. Delegate는 해당 클래스에서 위임자로 등록한 객체에서 메서드에 따른 이벤트가 발생하면 호출된다. TableView로 예시를 들어보자. ViewController 클래스가 UITableDelegate을 채택 프로퍼티로 선언된 tableView를 delegate 선언 delegate 안에 메서드 구현(e.g. TableView의 Ce..

iOS/Swift이론 2022.04.12

Swift) 클래스와 메서드

class Man{ var age : Int var weight : Double } 초기화 방법 ① class Man{ var age : Int = 1 var weight : Double = 3.5 } ② class Man{ var age : Int? var weight : Double? } ③ class Man{ var age : Int var weight : Double init(){ age = 1 weight = 3.5 } } 메서드 정의하기 class Man{ var age : Int = 20 var height : Double = 170.9 func Me(){ print("나이=\(age), 키=\(height)") } } 메서드 사용하기 class Man{ var age : Int = 20 v..

iOS/Swift이론 2022.03.30

[iOS]Swift 구조체

구조체는 상수 혹은 변수에 할당될 때, 혹은 함수에 들어갈 때 그 값이 복사되는 값타입이다. 구조체 안의 변수 : 프로퍼티 구조체 안의 함수 : 메서드 struct 구조체 이름 { 프로퍼티와 메서드 } struct Game { var name : String var genre : String func detail() { print("이번에 출시할 게임은 \(name)이고, 장르는 \(genre)입니다.") } } var game = Game(name : "Adventure Time", genre : "adventure") let a = game.name print(a) game.name = "Finn" let b = game.name print(b) game.detail()

iOS/Swift이론 2022.03.22

[iOS]Swift 함수

Swift의 함수에 대해서 알아보자. 함수(function) : 작업을 수행하는 코드의 집합 스위프트에서 함수의 키워드는 func이다. 함수의 기본 형태 func 함수명(파라미터 이름:데이터 타입) -> 반환 타입 { return 반환 값 } //리턴값이 Int인 함수 func sum(a: Int, b: Int) -> Int { return a+b } var ans = sum(a: 10, b: 2) print(ans) //리턴값이 String인 함수 func display() -> String { return "Hello" } print(display()) /* //반환 값이 없는 함수를 선언하는 방법은 밑과 같다. (둘은 같은 의미) func printName() -> Void {} func print..

iOS/Swift이론 2022.03.17

[iOS]Swift 컬렉션 타입 : Array, Dictionary, Set

컬렉션 타입[Collection Type] 은 데이터들의 집합이다. Swfit에서는 배열[array], 딕셔너리[dictionary], 세트[set]를 지원하고 있다. 배열[Array] 배열은 같은 타입의 데이터들을 순서에 맞춰 리스트에 저장한다. //빈 배열 생성 var firstArray: Array = Array() //var firstArray = [Int]() //축약형1 //var firstArray: [Int] = [] //축약형2 //배열에 값 삽입 firstArray.append(0) firstArray.append(1) firstArray.append(3) //배열의 원하는 자리에 값 삽입 firstArray.insert(2, at: 2) //2번 인덱스에 2를 넣는다. firstArr..

iOS/Swift이론 2022.03.03

[iOS]Swift 반복문 : for-in, while, repeat-while

for-in while repeat-while for for 루프상수(i) in 순회대상(range) { //실행할 구문 } 코드블록에 작성된 코드가 루프상수와 순회대상에 따라서 반복 실행이 된다. //예시 for i in 1...3 { print(i) //결과 : 1 2 3 } //배열을 활용 let array = [1,9,40,2] for i in array { print(i) //결과 : 1 9 40 2 } let arrayString = ["일","이"] for i in arrayString { print(i) //결과 : 일 이 } for문에는 where을 사용하여 조건을 추가할 수 있다. - where문이 참일 경우에만 for문이 돌아간다. 이를 활용하여 1~10까지 짝수만 출력되도록 코드를 ..

iOS/Swift이론 2022.03.03

[iOS] 스위프트로 간단한 앱 만들기 :: 오늘 뭐 먹지?

뷰컨트롤러 하나로만 만드는 간단한 앱 오늘 뭐 먹지! 오늘 뭐 먹지? 고민될 때 해답을 찾아주는 앱으로 하나의 화면으로만 구성되어 있다. 식사 or 후식 버튼을 클릭하면 그에 맞는 음식이름과 사진을 랜덤으로 뽑아주는 앱이다. 이후 textfield에 지역명을 입력하고 버튼을 클릭하면 지역명 + 음식이름을 웹에 검색하여 보여준다. ex) 강남 돈까스 오토레이아웃까지 적용한 메인스토리보드 화면이다. 음식사진이 나올 이미지뷰 : foodImg 음식 이름이 나올 레이블 : foodName 식사 버튼 : mealBtn 후식 버튼 : dessertBtn 뷰컨트롤러에 아웃렛 변수와 액션 함수 설정을 해준다. 새로운 스위프트 파일을 만들어 구조체를 정의해준다. 식사와 디저트 두 가지 구조체가 필요하다. 각각의 구조체에..

iOS/app 2022.02.09

[iOS] textfield와 label

앱을 만들면서 기초작업(?)을 어떤 유튜브를 보면서 따라하다보니 평소 사용하던 스토리보드에서 label이 아닌 textfield로 작업을 했다. 사실 빌드를 하고 시뮬레이터에서 겉보기에는 오른쪽 사진처럼 아무 문제 없어보이길래 사실 그냥 비슷한건가 보다 하고 이대로 냅뒀는데.. 오잉? 한 줄 짜리 글이 나오는데 이렇게 스크롤을 내릴 수 있다. 거기에 저렇게 커서까지 생긴다. 아..! 멍청한 실수였구나. 레이블로 바꿔야겠다. 이참에 한 번 이런 오브젝트들을 공부해보고 블로그에 정리를 해봐야겠다.

iOS/Swift실전 2022.01.25