choco5958
지마의 개발일기
choco5958
전체 방문자
오늘
어제
  • 전체보기 (46)
    • 개발 (34)
      • Java (0)
      • JavaScript (7)
      • Php (4)
      • Ios(Swift) (23)
    • 프론트엔드 (7)
      • Html (1)
      • Css (5)
    • 백엔드 (0)
      • Mysql (0)
      • Oracle (0)
      • MongoDB (0)
    • 서버 (2)
      • Linux (2)
    • 일상 (3)
      • 반려동물 (1)
      • 베이킹 (2)
      • 맛집 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 자바스크립트#javascript#js#개발#웹개발
  • ios#swift#스위프트#구조체#문법#애플#아이폰
  • ios#swifth#스위프트#열거형#아이폰#애플
  • ios#swift스위프트#애플#아이폰#클래스#구조체
  • ios#swift#스위프트#아이폰#클래스#애플
  • ios#swift#스위프트#아이폰#애플#타입캐스팅
  • ios#swift#스위프트#프로퍼티#애플#아이폰
  • ios#swift#스위프트#애플#아이폰#고차함수
  • ios#swift#스위프트#애플#아이폰
  • swift#ios#스위프트#애플#아이폰#init#초기화구문
  • ios#swift#스위프트#조건문#아이폰#애플
  • php#500error
  • ios#swift#스위프트#아이폰#애플#함수
  • ios#swift#스위프트#애플#아이폰#assert#guard
  • ios#swift#스위프트#아이폰#애플#프로토콜
  • ios#swift#스위프트#클로저#애플#아이폰
  • ios#swift#스위프트#애플#아이폰#try-catch#오류처리
  • php#linux#soap#리눅스
  • ios#swift#스위프트#아이폰#애플#상속
  • ios#swift#스위프트#아이폰#애플#옵셔널체이닝

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
choco5958

지마의 개발일기

개발/Ios(Swift)

IOS 스위프트(Swift) 문법 - 클래스와 구조체의 차이

2021. 8. 19. 22:22

1. 클래스와 구조체의 공통점

- 값을 저장할 프로퍼티를 선언할 수 있습니다.

- 함수적 기능을 하는 메서드를 선언할 수 있습니다.

- 내부 값에 . 을 사용하여 접근할 수 있습니다.

- 생성자를 사용해 초기 상태를 설정할 수 있습니다.

- extension을 사용하여 기능을 확장할 수 있습니다.

- Protocol을 채택하여 기능을 설정할 수 있습니다.

 

2.클래스와 구조체의 차이점

2-1. 클래스

- 참조 타입입니다.

- ARC로 메모리를 관리합니다.

- 상속이 가능합니다.

- 타입 캐스팅을 통해 런타임에서 클래스 인스턴스의 타입을 확인할 수 있습니다.

- deinitdㅡㄹ 사용하여 클래스 인스턴스의 메모리 할당을 해제할 수 있습니다.

-같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경 시키면 모든 변수에 영향을 줍니다.(메모리가 복사 됨)

 

2-2. 구조체

- 값 타입입니다.

- 구조체 변수를 새로운 변수에 할당할 때마다 새로운 구조체가 할당됩니다.

- 즉 같은 구조체를 여러 개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않습니다.(값 자체를 복사)

 

class SomeClass {
    var count: Int = 0
}

struct SomeStruct {
    var count: Int = 0
}

var class1 = SomeClass()  //SomeClass
var class2 = class1  //SomeClass
var class3 = class1  //SomeClass

class3.count = 2  //SomeClass
class1.count  //2

var struct1 = SomeStruct()  //SomeStruct
var struct2 = struct1  //SomeStruct
var struct3 = struct1  //SomeStruct

struct2.count = 3  //SomeStruct
struct3.count = 4  //SomeStruct

struct1.count  //0
struct2.count  //3
struct3.count  //4

'개발 > Ios(Swift)' 카테고리의 다른 글

IOS 스위프트(Swift) 문법 - 타입캐스팅  (0) 2021.08.19
IOS 스위프트(Swift) 문법 - 상속  (0) 2021.08.19
IOS 스위프트(Swift) 문법 - 프로퍼티  (0) 2021.08.17
IOS 스위프트(Swift) 문법 - 초기화 구문 init  (0) 2021.08.17
IOS 스위프트(Swift) 문법 - 클래스  (0) 2021.08.17
    '개발/Ios(Swift)' 카테고리의 다른 글
    • IOS 스위프트(Swift) 문법 - 타입캐스팅
    • IOS 스위프트(Swift) 문법 - 상속
    • IOS 스위프트(Swift) 문법 - 프로퍼티
    • IOS 스위프트(Swift) 문법 - 초기화 구문 init
    choco5958
    choco5958
    안녕하세요. 개발 및 일상 팁 들을 포스팅하는 블로그입니다.

    티스토리툴바