반응형
rss 아이콘 이미지
반응형

클래스와 구조체는 프로그램의 코드를 조직화 하기 위해 일반적으로 사용합니다. OOP를 위한 필요 요소이기도 합니다. Swift는 다른 프로그래밍 언어와 다르게 interface파일과 implementation파일을 분리해서 만들지 않아도 됩니다. 하나의 파일에 구조체나 클래스를 정의하면, Swift가 자동으로 알아서 해당 클래스와 구조체를 사용할 수 있는 인터페이스를 생성해 줍니다.

 

클래스와 구조체의 비교 (Comparing Classes and Structures)
Swift에서 클래스와 구조체는 많은 공통점이 있습니다. 클래스와 구조체 둘다 다음과 같은 기능이 가능합니다.
 
더 많은 정보는 프로퍼티, 메소드, 서브스크립트, 초기화, 확장 그리고 프로토콜을 참조
구조체로는 가능하지 않고 클래스만 가능한 기능은 아래와 같습니다.
 
더 많은 정보는 상속, 타입캐스팅, 소멸자 그리고 자동 참조 카운트를 참조
 
 
선언 문법 (Definition Syntax)
클래스와 구조체 둘다 비슷한 선언 문법을 갖고 있습니다. 클래스는 class 키워드를 구조체는 struct 키워드를 이름 앞에 적어서 선언할 수 있습니다.
 
class SomeClass {
 
// 클래스 내용은 여기에
 
}
 
struct SomeStructure {
 
// 구조체 내용은 여기에
 
}
반응형

Swift 열거형 (Enumerations)

카테고리 없음 2023. 2. 20. 09:05 Posted by 법당오빠
반응형

열거형은 관련된 값으로 이루어진 그룹을 공통의 형으로(type) 선언해 형 안전성(type-safety)을 보장하는 방법으로 코드를 다룰 수 있게 해줍니다. C나 Objective-C가 Integer값들로 열거형을 구성한 것에 반해 Swift에서는 case값이 string, character, integer, floting 값들을 사용할 수 있습니다. 열거형은 1급 클래스 형(first-class types)이어서 계산된 프로퍼티(computed properties)를 제공하거나 초기화를 지정하거나, 초기 선언을 확장해 사용할 수 있습니다.

 

열거형 문법 (Enumeration Syntax)
enum키워드를 사용해 열거형을 정의합니다.
 
enum CompassPoint {
    case north
    case south
    case east
    case west
}
 
C나 Objective-C 와는 다르게 Swift에서 열거형은 생성될 때 각 case 별로 기본 integer값을 할당하지 않습니다. 위 CompassPoint를 예로 들면, north, south, east, west는 각각 암시적으로 0, 1, 2, 3값을 갖지 않습니다. 대신 Swift에서 열거형의 각 case는 CompassPoint으로 선언된 온전한 값입니다
반응형

Swift 제어문 (Control Flow)

개발/iOS 2023. 2. 17. 09:43 Posted by 법당오빠
반응형

wift에서는 while loop, if guard, switch, for-in 문 등 많은 제어문을 제공합니다.

 

For-In 문 (For-In Loops)

for-in문는 배열, 숫자, 문자열을 순서대로 순회(iterate)하기 위해 사용합니다.

 

let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
    print("Hello, \(name)!")
}
// Hello, Anna!
// Hello, Alex!
// Hello, Brian!
// Hello, Jack!

 

 

사전(dictionary)에서 반환된 키(key)-값(value) 쌍으로 구성된 튜플을 순회하며 제어할 수도 있습니다.

let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
    print("\(animalName)s have \(legCount) legs")
}
// ants have 6 legs
// spiders have 8 legs
// cats have 4 legs

 

사전(dictionary)에 담긴 콘텐츠는 정렬이 되지 않은 상태입니다. 사전에 넣었던 순서대로 순회되지 않습니다. 아래와 같이 숫자 범위를 지정해 순회할 수 있습니다.

 

for index in 1...5 {
    print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25

 

반응형