일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 드라이브바이다운로드
- 파이썬
- reactjs
- 오늘의게임
- 메일헤더
- 악성앱
- 정적분석
- pyqt
- paas
- 블록체인
- 준비과정
- 공급망공격
- 파일리스
- ios
- 악성코드
- 더위쳐
- 프론트앤드
- objectiveC
- 안드로이드
- anaconda
- 악성스크립트
- CPPG
- 7layer
- IaaS
- 네트워크
- Python
- 웹크롤링
- MacOD
- 메타데이터
- 스타듀밸리
- Today
- Total
취보특개
ObjectiveC-2 본문
간단한 프로그램을 만들어보자.
커맨드라인 프로젝트로 먼저 만들고 IOS로 바꿀거다.
간단하게 만들려는 프로그램은 영업원들의 정보를 저장한 주소록이다.
먼저 영업원들의 정보를 담을 틀을 만들어본다.
[그림2]에 대한 설명을 덪붙이자면,
@property (atomic, ): 동시에 변수에 접근할 수 없는 것 (속도 느림) (deadlock 막아주는 lock개념)
@property(nonatomic, ): 동시에 변수에 접근해도 상관없다.
@property(nonatomic, strong): strong은 생략가능한데, 객체를 참조하고 있다는 뜻이다.
만들어진 클래스에 정보를 넣고 출력하면 [그림4]과 같다.
이제 주소록 정보를 검색 삭제 출력 등을 할 수 있도록 기능을 만들어주자
[그림5]의 @class seller의 의미는,
seller라는 클래스 있으니까 걱정마.(에러내지마) 라는 의미이다.
sellerManager.m에서 import "seller.h"를 했기때문에, .h의 입장에선 seller가 뭔지모르니 에러를 내기 때문에
@class를 사용해 알려준다.
※ import는 보통 구현부(.m)에서 한다.
객체를 초기화 할때는 [그림 6]처럼 init 메소드를 사용한다.
sellerManager의 addSeller로 만들어놓은 객체들을 집어놓고
showAllSeller 메소드로 객체가 제대로 들어 갔음을 확인할 수 있다.
다른 기능들을 더 만들어보자.
searchSeller 메소드는 특정 name과 일치하는 객체의 내용을 출력할 것이다.
numberOfSeller 메소드는 리스트 안에 몇개의 객체가 있는지 리턴할 것이다.
deleteSeller는 리스트 안의 특정 name과 일치하는 객체를 리스트에서 제거할 것이다.
메소드의 이름이 직관적이라 기본적인 코딩 지식이 있다면 코드 이해에 무리가 없다.
line 31. searchSeller의 결과로 1~3번째 줄에 uChi 객체 정보가 출력 되었고
line 34-38. deleteSeller의 결과로
line33, 40. numberOfSeller의 결과 리스트에 포함된 객체의 수가 줄어들었다.
이제 다음 챕터에서 이것을 비주얼적으로 표현해보자.
다음 챕터로 넘어가기전,
NSLog는 CLI 디버깅을 위한것이지 비주얼적으로 나타낼 수 없다.
때문에 showAllSeller를 아래 그림처럼 문자열을 리턴하는 것으로 변경할 것이다.
searchSeller도 showAllseller처럼 NSString 리턴으로 바꾼다음 다음 챕터로 넘어가자.
'Gaebal > iOS' 카테고리의 다른 글
iOS에서 hosts 변경 (0) | 2021.04.22 |
---|---|
ObjectiveC-1 (0) | 2020.01.05 |
시작 (0) | 2019.12.22 |