전체 글 55

[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

정보통신이란?, 정보전송 시스템의 하드웨어와 소프트웨어

정보통신 시스템: 정보전송 시스템+정보처리 시스템 - 정보전송 시스템(데이터전송계) : 단말장치+정보전송 회선(신호 변환장치와 통신회선)+통신 제어장치 구성요소 기능 단말장치 정보의 입력과 수신 신호 변환장치 변조와 복조 통신회선 변환된 신호의 이동 통로나 통신망 통신 제어장치 컴퓨터와 모뎀 사이 위치해 송수신되는 데이터를 처리하기 좋은 형식으로 변환 오프라인·배치처리, 온라인·즉시처리 - 정보처리 시스템(데이터처리계) : 컴퓨터(중앙처리장치, 기억장치, 입출력장치)+주변기기 구성요소 기능 중앙처리장치 컴퓨터에서 입력되는 데이터를 가공, 처리, 축적, 수정, 변경, 추가 기억장치와 입출력 장치 컴퓨터에서 데이터를 저장하는 저장장치와 입출력 장치로 구성 즉시처리, 온라인·배치처리 오프라인처리: 자료 동을 ..

네트워크 2022.03.17

[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

[iOS]this class is not key value coding-compliant for the key

this class is not key value coding-compliant for the key라는 에러가 났다. 다 고치고 나서 쓰는 글이라 중간 과정이 빠졌지만 혹시나 다음번에 또 비슷한 상황이 생길 수도 있으니 기록용으로 짧게 글을 작성한다. 아주 간단한 에러였는데, 아웃렛을 수정하는 과정에서 제대로 삭제되지 않아 Table이 두 개가 있었다. 하나를 삭제하니 바로 문제가 해결되었다.

iOS/Swift실전 2022.01.22

[iOS] 할 일 체크리스트 앱 만들기! To do list

새로운 프로젝트를 만들어주자. 이름은 ToDoList. 딱히 설정해야할 것은 없다. 스토리보드에 기존에 있던 뷰 컨트롤러는 삭제해주고(ViewController.swift 파일도 함께 삭제) 테이블 뷰를 끌어온다. 테이블 뷰를 선택한 상태에서 Editor - Embed in - Navigation Controller을 통해 네비게이션 컨트롤러를 추가한다. 기존에 스토리보드에 있던 뷰 컨트롤러를 삭제해서 entry point가 없으니 지정해주자. 네비게이션 컨트롤러를 선택하고 attributes inspector에서 View Controller 영역에서 Is Initial View Controller 체크체크! 네비게이션 바 영역에 Bar Button Item을 추가해주자. 이 버튼을 선택하고 인스펙터의 ..

iOS/Swift실전 2022.01.19