분류 전체보기
산술 연산자: 기본적인 수학 연산을 수행함연산자설명예시(let a = 5, b = 3)결과+더하기a + b8-빼기a - b2*곱하기a * b15/나누기a / b1%나머지a % b2주의할 점 : a / b 는 정수끼리 나누면 정수 결과만 반환함 할당 연산자연산자설명예시=값을 변수에 할당let a = 10+=더하고 할당a += 5-=빼고 할당a -= 5*=곱하고 할당a *= 5/=나누고 할당a /= 5%=나머지 계산 후 할당a %= 5 비교 연산자연산자설명예시 ( a = 5, b = 3)결과==같음a == b false!=같지 않음a != btrue작음a flase>큼a > btrue작거나 같음a false>=크거나 같음a >= btrue 논리 연산자연산자설명예시 (true, false)결과&&논리 ANDt..
import UIKit// Have a nice day // 이것은 Swift에서는 문자열로 판단하지 않음."Have a nice day" // 큰따옴표로 해야 문자열로 판단함."123" // 이것도 문자는 숫자로 이루어져 있지만 큰따옴표로 되어있으므로 문자열로 판단함.// let onChar = "1" // 이렇게 작성하면 문자로 판단.let onChar: Character = "1"// let doubleChar: Character = "12" // 이것은 두개의 문자가 들어가서 문자로 저장할 수 없는 것임.// 즉, 문자 : 1개의 문자, 문자열 : 2개 이상의 문자의 집합체let emptyChar : Character = " " // 빈공간으로 하고싶으면 하나의 스페이스를 둬야함.// let st..
import UIKit123 // Integer Types1.23 // Floating-point Typesvar number = 0// Int8, 16, 32, 64가 있음Int8.min // Int8타입이 저장할 수 있는 최소값Int8.max // Int8타입이 저장할 수 있는 최대값// Int 자체는 - ~ + 까지저장함. UInt는 +만 저장함// 실수를 저장하는 자료형은 Float, Double가 있지만 일반적으론 Double를 사용함// 참거짓을 부르는 명칭은 "Boolean" 일반적으로 Bool타입이라고 함let ishappy = truelet gloomy = false// 타입 확인하는법// 정수 : Int, 실수 : Double, 문자열 : String, 참거짓(불린) : Boollet ..
import UIKit// 변수var name = "Swift" // 변수선언 우측열을 좌측열에 저장한다var thisYear = 2024 // Year에서 Y를 대문자로 쓴 이유 아래에 정리var valid = true // or false// 이름 정의 규칙// Naming Convention// 코드의 가독성이 높아짐 => 코드의 안정성이 높아짐print(name) // 프로젝트에서 값을 도출하려면 print를 작성해야함print(thisYear)print(valid)name = "Steve" // 우측열을 좌측열에 새로 저장한 것임 => Swift + Steve가 아닌 Swift가 Steve가 되는 것name = "Doseo" // 가장 마지막에 저장된 값이 저장됨thisYear = 2025val..
객체지향 프로그래밍 (OOP)OOP는 데이터와 기능을 객체라는 단위로 묶어 처리하는 방식임.Swift에서 OOP는 주로 클래스, 구조체, 프로토콜을 통해 구현됨. OOP의 주요 특징은 다음과 같음.캡슐화 : 객체 내부의 데이터를 외부에서 접근하지 못하게 보호하는 개념임. Swift에서는 private, fileprivate, internal 같은 접근 제어자를 통해 캡슐화를 지원함상속 : 기존 클래스나 구조체를 기반으로 새로운 클래스나 구조체를 생성할 수 있음. Swift에서 클래스는 상속이 가능하지만, 구조체는 상속이 불가능함. 대신 Swift는 프로토콜을 통해 상속처럼 동작하는 기능을 구현할 수 있음.다형성 : 상속받은 자식 클래스나 객체가 부모 클래스의 속성이나 메서드를 재정의할 수 있음. Swif..
어플 수정중에 컬렉션뷰를 수평 스크롤 할때 밑줄을 지우는 방법을 추가했음 해당 컬랙션뷰를 선언하고나서 기능을 추가할때private let puppyCollectionView: UICollectionView = { let layout = UICollectionViewFlowLayout() layout.scrollDirection = .horizontal layout.minimumLineSpacing = 0 layout.minimumInteritemSpacing = 0 let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) collectionV..
Fix/뭐시기 브랜치를 만들고 해당 브랜치에서 작업하고 push 혹은 pull을 하려고 하는데 안됐음. 이유가 뭔가하니 fix와 fix/어쩌고 하는 두 브랜치를 사용하려고 하면, Git에서 브랜치 이름 충돌로 인해 커밋 또는 푸시가 실패하는 오류가 생기는 것이었음 오류 메시지: could not remove directory '/Users/t2023-m0072/Documents/파일이름/파일명/.git/refsremotes/origin/fix/gitignore': parent is not directory: Not a directory (-1) 해결하는 방법으로는git remote에서 fix 브랜치를 삭제하고 fix가아닌 다른 이름 fix/bugfix 등으로 이름을 변경하면됨. 예방하는 방법으로는브랜치를..
오늘부터 다시 TIL작성을 할 것임. 요즘 코딩에 손을 놨었는데, 주문한 새 맥북도 온김에 오랜만에 코딩 공부를 해봤음. 요즘은 기초 문법부터 다시 공부를 하고있는데 개념으로 다가가니 조금 어려운 느낌이 강하게 들었음. https://leedoseo.tistory.com/192 [iOS / Swift] 구조체 (Struct)구조체 (Struct): 구조체란 인스턴스의 값(프로퍼티)을 저장하거나 기능(메서드)을 제공하고 이를 캡슐화할 수 있는 Swift가 제공하는 타입(named type)임. 클래스처럼 인스턴스를 만들어서 실제 작업leedoseo.tistory.com https://leedoseo.tistory.com/191 [iOS / Swift] 클래스(Class)Swift는 객체 지향 언어이기 떄문..
구조체 (Struct): 구조체란 인스턴스의 값(프로퍼티)을 저장하거나 기능(메서드)을 제공하고 이를 캡슐화할 수 있는 Swift가 제공하는 타입(named type)임. 클래스처럼 인스턴스를 만들어서 실제 작업에도 쓸 수 있음.코드를 보면 클래스와 구조체의 코드가 거의 비슷함. class를 struct로 바꾼 것 말고는 차이가 없는듯함.이처럼 클래스와 구조체는 선언하고 사용하는 방법까지 매우 비슷함. 구조체 안의 변수도 속성이라 부르고 함수도 메서드라고 부름.구조체 안의 변수 : 속성(Property)구조체 안의 함수 : 메서드(method) 이제 클래스와 조금 다른 점을 보자면, 클래스에서는 초기화 작업이 있었음. 초기화 작업을 하면 인스턴스에 매개변수를 변경해줄 수 있었음.(클래스 내부에 init(..