일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pyqt
- 7layer
- 드라이브바이다운로드
- 파일리스
- 프론트앤드
- 준비과정
- 공급망공격
- Python
- MacOD
- 오늘의게임
- 블록체인
- 정적분석
- CPPG
- 악성스크립트
- 스타듀밸리
- 더위쳐
- 메타데이터
- 악성앱
- 파이썬
- reactjs
- 네트워크
- objectiveC
- IaaS
- anaconda
- 웹크롤링
- 메일헤더
- 악성코드
- 안드로이드
- paas
- ios
- Today
- Total
취보특개
ObjectiveC-1 본문
다운받기
- App Store 또는 Developer홈페이지에서 다운로드 가능하다.
프로젝트 만들기
- 자료형, 클래스 등 공부를 할 것이기 때문에 Command Line Tool로 프로젝트를 만든다.
※ 다른 작업을 하며 캡쳐해서 시간 뒤죽박죽과 그림 매칭이 안되는 것도 있으니 전체적인 틀로만 파악 바람
구조
① 재생버튼
- 컴파일 버튼(단축키: 커맨드R)
② @autoreleasepool
- 스택처럼 생겼다 사라지는 메모리 영역
- 여기다가 코드를 입력한다.
② int x = 1
- 정수형 변수 선언
② NSLog(@"value of x : %i", x)
- print() 같은 존재라고 생각하면 됨
- 문자열을 쓸때는 항상 @를 앞에 붙여야만 함
③ Foundation Framework
- 프레임워크에 라이브러리가 포함되어있음
- Foundation Framework는 무조건 써야하는 라이브러리로 C의 처럼 생각
- Foundation Framework에는 NSString. NSArray, NSDictionary 등이 있음
조건문
반복문
클래스
클래스를 위해서는 선언부(@interface)와 구현부(@implementaion)가 필요하다.
[그림8]처럼 클래스 파일을 만들면, 선언부와 구현부를 구분해서 파일이 자동으로 만들어진다.
.h 파일에 선언부를 입력
.m 파일에 구현부 입력
※ 구현부도 @implementation House : NSObject로 작성해야하지만, NSObject가 최상위라서 생략할 수 있다.
main.m에서 클래스 호출 및 메소드 사용.
GETTER, SETTER의 경우 이클립스처럼 자동 생성되지는 않지만.
아래와 같이 @property를 사용하여 생략할 수 있다.
[그림12]에서 @property (setter= ...)처럼 setter의 이름을 바꿀 수 도있지만 잘 사용하지는 않는다.
(setter=setRooms:)에서 콜론(:)은 인자를 받겠다는 의미이다.
만약, getter의 이름을 바꾸겠다면
@property(getter=getRooms)처럼 콜론이 필요하지 않다.
[그림14]의 h.floor처럼 Receiver Message가 익숙하지 않은 개발자들은 도태 연산자를 사용할 수 있다.
※ 클래스 변수에는 *을 붙인다.
문자열
NSString 문서를 보면,
NSString 클래스와 서브클래스 NSMutableString이 있다.
NSMutableString은 단어 그대로 수정할 수 있는 문자열 이다.
NSString 사용 방법부터 보자.
※ 문자열을 쓸때는 항상 @를 붙인다.
[그림15]의 ①번과 ②번처럼 초기화하여 사용하는게 객체 할당의 정석이다. 하지만,
NSString은 워낙 사용 빈도가 높아서 동적할당을 하지않고 ③번처럼 써도된다. (NSString만 가능하다)
②번의 initWithString 같은 것이 NSString의 메소드이다.
initWithString은 초기화와 동시에 문자열을 할당해주는 것을 뜻한다.
그 외의 다른 NSString 메소드를 몇 개 알아보자.
[그림16]에서 사용한 메소드는 substringFromIndex 와 substringToIndex 이다.
문자열을 Dividing하여 새로운 문자열로 리턴해주는 메소드인데,
어떤 식으로 설명해야하나 싶어 그림으로 표현했다.
[그림-17]과 [그림-16]의 결과를 비교하면 이해하기 쉬울것같다.
콘솔 결과창의 주황색 네모 박스를 보면 같은 결과값인데 실제 코드는 다르게 표현되었다.
이렇게 여러 표현법이 존재하니,
모르는 라이브러리가 나올때는 알트를 누르고 클릭하여 짤막하게 나오는 설명을 보도록하자.
[그림-16]에서 문자열을 수정한 결과값을 result에 넣는것을 보아 알 수 있듯이
NSString은 변경 값을 리턴하여 줄 뿐 자기 자신이 변화하지 않는다.
하지만 NSMutableString을 사용하면 부분 수정이 가능하다.
[그림-18]에서 사용된 NSMutableString 메소드는 appendString, insertString이다.
자기자신이 변화하기 때문에 NSString처럼 리턴값을 받아줄 필요가 없다.
이외에도 굉장히 많은 메소드들이있고,
NSString 외에도 많은 클래스들이 있다.
모르는 것들이 나오면 [그림-19]처럼 Developer Document를 참고하여 보는 습관을 가지자.
배열
NSString과 마찬가지로 배열에도
NSArray와 NSMutableArray가 있다.
① NSArray는 초기화할때 파라미터가 끝났다는 의미로 nil을 추가해야한다.
② 출력은 같지만 Objective C 스타일로 배열의 접근하려면 objectAtIndex 메소드를 이용한다.
③ 실제로 배열을 쓸때는 for보다 for in을 자주 쓴다.
NSMutableArray는 nil을 안 넣어줘도 된다.
NSMutableArray가 더 좋아보이지만, NSArray와의 속도차이가 크다.
딕셔너리
[그림22]는 NSDictionary의 클래스 초기화 방법 및 메소드이고,
[그림23]은 NSMutableDictionary의 클래스 초기화 및 메소드이다.
파이썬의 딕셔너리와 기능은 같으나, Objective-C에서는 value, key 형태로 입력된다.
'Gaebal > iOS' 카테고리의 다른 글
iOS에서 hosts 변경 (0) | 2021.04.22 |
---|---|
ObjectiveC-2 (0) | 2020.01.19 |
시작 (0) | 2019.12.22 |