반응형
250x250
11-24 19:32
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 감성에세이
- swift 코딩테스트
- swift
- 프로그래머스 level1
- Design Pattern
- swift 알고리즘
- swift split
- dart
- programmers
- 정렬알고리즘
- sort
- 알고리즘
- 정렬
- programmer
- 프로그래머스
- coding test
- 자료구조
- 디자인 패턴
- rxswift
- 프로그래머스 레벨2
- Algorithm
- 다트
- 정렬 알고리즘
- 프로그래머스 swift
- 코딩테스트
- datastructure
- 스위프트디자인패턴
- 코테
- 디자인패턴
- 스위프트
Notice
Recent Posts
Recent Comments
Link
Archives
Bill Kim's Life...
[Swift] Swift5 vs Objective C : 문법적 차이 본문
728x90
반응형
Swift5와 Objective C와의 문법적 차이를 알아봅니다.
이번 글은 지난 글에 이어서 Swift5와 Objective C와의 문법적 차이에 대해서 살펴보겠습니다.
#. 필요 기본 지식
- 기존에 iOS 개발에 대한 기초 지식이 있으신분
- Objective C에 대해서 사용 경험이 있거나 개발을 많이 해보신분
- Swift를 처음 진입하기전에 Objective C와의 문법적 차이를 알고 싶으신분
그럼 두 언어 간의 문법적 차이를 한번 살펴보겠습니다.
#1. 확장자
- Swift : .swift
- Objective C : .h, .mm
#2. 파일 포함 방식
- Swift : import
import UIKit
- Objective C : #import
#import UIKit
#3. 코딩 스타일
- Swift : 모든 구문 뒤에 세미콜론 생략 가능, 조건문 등에서 ( ) 로 묶지 않아도 됨
- Objective C : 모든 구문 사이에 [ ] 문자로 감쌈, 구문 끝에는 세미콜론 반드시 입력
#4. 동적 타입
- Swift
- Any : 모든 변수 및 객체 지정 가능
- AnyObject : 객체 타입에 지정 가능
- Objective C
- id : 모든 변수 및 객체에 지정 가능
#5. 자료형
- Swift
- Bool : true, false 값을 처리, 0, 1로는 사용할 수 없음
- Int : +, -, 0을 포함한 64비트 정수형 타입
- UInt : 양수 정수형 타입, Int 타입 값을 넣을 수 없음
- Float : 32비트 부동 소수형 타입, 정수값 입력 가능
- Double : 64비트 부동 소수형 타입, 정수값 입력 가능
- Character : 한 글자의 문자를 가지는 문자형 타입
- String : 여러 문자를 가지는 문자형 타입
- Objective C
- 기본적으로 C, C++ 형태의 자료형 사용 가능
- BOOL, bool : true, false 값을 위한 자료형, 0, 1을 사용할 수 있음
- NSInterger : +, -, 0을 포함한 64비트 정수형 타입
- NSUInterger : 양수 정수형 타입, Int 타입 값을 넣을 수 없음
- CGFloat : 32비트 부동 소수형 타입, 정수값 입력 가능
- double : 64비트 부동 소수형 타입, 정수값 입력 가능, Objective C 전용 자료형은 없음
- char : 한 글자의 문자를 가지는 문자형 타입, Objective C 전용 자료형은 없음
- NSString : 여러 문자를 가지는 문자형 타입
#6. 문자 처리
- Swift
String str = “abcd”
- Objective C
NSString = @“abcd”
#7. 상수 및 변수
- Swift : let(상수), var(변수, 모든 자료형과 호환)
- Objective C : const(상수), 변수는 기본 자료형으로 선언
#8. 컬렉션(Collection)
- Swift
- Array : 순서가 있는 리스트 컬렉션, 배열과 비슷함, 중복값 허용
- Dictionary : Key, Value로 이루어진 컬렉션, (해쉬)맵과 비슷한 형태로 키는 중복 허용 안하나 값은 중복 허용
- Set : 순서가 없고 컬렉션 안의 멤버들이 각각 유일한 컬렉션, 중복 허용 안함, 집합 내의 빠르게 각 원소값을 확인할 때 유용
- Objective C
- NSArray : 순서가 있는 리스트 컬렉션, 값 설정 이후 수정 불가
- NSMutableArray : NSArray와 같은 리스트 컬렉션이나 값 설정 이후에도 수정 가능
- NSDictionary : Key, Value로 이루어진 컬렉션, 키는 중복 허용 안하며 값은 중복 허용, 초기 설정 이후 수정 불가
- NSMutableArray : NSDictionary와 마찬가지인 컬렉션으로 갑 설정 이후에도 수정이 가능한 타입
- NSSet : 순서가 없고 컬렉션 안의 멤버들이 각각 유일한 컬렉션 중복 허용 안함, 집합 내의 빠르게 각 원소값을 확인할 때 유용, 초기 설정 이후에 수정 불가
- NSMutableSet : NSSet과 같은 컬렉션으로서 초기 설정 이후에도 수정이 가능한 타입
#9. 조건문
- Swift
- if : () 안에 조건문을 표현할 수도 있고 생략하여도 무방, && 연산자 대신에 , 로 나열 가능, 반드시 { } 로 조건문을 감싸야 한다.
- guard : if와 비슷한 조건문이지만 else 구문이 반드시 필요하며 참일 경우에는 실행 코드 블럭이 없아. guard는 다양한 용도로 활용할 수 있으며 해당 내용은 추후 다른 강좌로 소개할 예정
- Switch : 기존 switch 문과 유사하며 case, default 형식으로 조건 검사, case 문서에 조건(case let(x, y)) 및 범위(case (-3...3))로도 분기 처리 가능
- Objective C
- if : () 안에 조건문 표기, 한 줄일 경우 { } 생략 가능
- Switch : 기존 C의 switch문과 유사하며 case, dafault 형식으로 조건 검사
#10. 반복문
- Swift
for 루프 상수 in 루프 구간(조건) {
[코드]
}
루프 순회 표현은 0..2 형식으로 범위 지정이 가능하며 Swift5에서는 기존 C 스타일의 For문 형식은 사용 불가
while 루프 조건 {
[코드]
}
- Objective C
for(int i = 0; i < 10; i++)
{
[코드]
}
for(루프 상수 : 콜렉션 객체) {
[코드]
}
기존 C 스타일의 For문 구문 사용 가능, 콜렉션 타입의 경우도 다음고 같이 사용 가능
while(루프 조건) {
[코드]
}
#11. 함수
- Swift
public func name(name:String) -> String(반환값)
{
return name
}
- Objective C
-(NSString *)name:(NSString *)name
{
return name;
}
#12. 구조체
- Swift : 기본적인 문법 형태를 비슷함, 여러 변수를 담을 수 있는 컨테이너, 프로퍼티, 메서드 사용 가능, Extension 및 프로토콜 사용 가능, Subscript(특정 멤버 변수 등을 [0]의 형태로 접근할 수 있는 문법) 사용이 가능, 값 타입의 자료형, 상속 불가
- Objective C : 기존 C 스타일의 구조체 사용과 거의 동일하다. 멤버 및 함수 선언 가능
#13. 클래스
- Swift : 구조체와 비슷한 하나의 객체를 표현하는 단위, 참조 타입의 자료형, 상속이 가능하며 클래스 인스턴스에 대한 타입 캐스팅 및 디이니셜라이저 지원, ARC 기본 지원
- Objective C : Swift 클래스와 비슷한 형태로서 객체를 표현하는 단위, 기본적으로 NSObject 객체를 상속할 경우 ARC를 자동으로 사용 가능
#14. enum
- Swift
enum Number {
case one
case two
case three
}
- Objective C
enum Number {
one = 1,
two = 2,
three = 3
};
지금까지 Swift와 Objective C 간의 문법적인 부분에 대해서 간략하게 살펴보았습니다.
그럼 오늘 하루도 모두들 행복한 하루 되세요. ^^
감사합니다.
www.slideshare.net/BillKim8/swift5-vs-objective-c
728x90
반응형
'CS(컴퓨터 과학) > Swift' 카테고리의 다른 글
[Swift] Types : Named(명명) Type과 Compound(복합) Type (0) | 2020.06.11 |
---|---|
[Swift] Method(메소드) : 인스턴스 메소드와 타입 메소드 (0) | 2020.06.11 |
[Swift] Class & Structure : 공통점과 차이점 (0) | 2020.06.11 |
[Swift] Properties(프로퍼티) : 개념과 사용 방법 (0) | 2020.06.11 |
[Swift] Swift5 vs Objective C : 개념적 차이 (0) | 2020.06.11 |
Comments