취보특개

ObjectiveC-2 본문

Gaebal/iOS

ObjectiveC-2

ha3kkkkk 2020. 1. 19. 15:37

간단한 프로그램을 만들어보자.

[그림1] Create CommandLineTool Project

커맨드라인 프로젝트로 먼저 만들고 IOS로 바꿀거다.

 

간단하게 만들려는 프로그램은 영업원들의 정보를 저장한 주소록이다.

 

먼저 영업원들의 정보를 담을 틀을 만들어본다.

 

[그림2] create .h
[그림3] create .m

[그림2]에 대한 설명을 덪붙이자면,

@property (atomic, ):     동시에 변수에 접근할 수 없는 것 (속도 느림) (deadlock 막아주는 lock개념)

@property(nonatomic, ): 동시에 변수에 접근해도 상관없다.

@property(nonatomic, strong): strong은 생략가능한데, 객체를 참조하고 있다는 뜻이다.

[그림4] insert info in class

만들어진 클래스에 정보를 넣고 출력하면 [그림4]과 같다.

 

이제 주소록 정보를 검색 삭제 출력 등을 할 수 있도록 기능을 만들어주자

 

[그림5] create sellerManager.h
[그림6] create sellerManager.m

[그림5]@class seller의 의미는,

seller라는 클래스 있으니까 걱정마.(에러내지마) 라는 의미이다.

 

sellerManager.m에서 import "seller.h"를 했기때문에, .h의 입장에선 seller가 뭔지모르니 에러를 내기 때문에

@class를 사용해 알려준다.

 

※ import는 보통 구현부(.m)에서 한다.

 

 

객체를 초기화 할때는 [그림 6]처럼 init 메소드를 사용한다.

 

[그림7] using sellerManager

sellerManager의 addSeller로 만들어놓은 객체들을 집어놓고

showAllSeller 메소드로 객체가 제대로 들어 갔음을 확인할 수 있다.

 

다른 기능들을 더 만들어보자.

 

[그림8] add various function in .h

searchSeller 메소드는 특정 name과 일치하는 객체의 내용을 출력할 것이다.

numberOfSeller 메소드는 리스트 안에 몇개의 객체가 있는지 리턴할 것이다.

deleteSeller는 리스트 안의 특정 name과 일치하는 객체를 리스트에서 제거할 것이다.

 

[그림9] add various function in .m

메소드의 이름이 직관적이라 기본적인 코딩 지식이 있다면 코드 이해에 무리가 없다.

 

[그림10] results of various functions

line 31.       searchSeller의 결과로 1~3번째 줄에 uChi 객체 정보가 출력 되었고

line 34-38.  deleteSeller의 결과로 

line33, 40.   numberOfSeller의 결과 리스트에 포함된 객체의 수가 줄어들었다.

 

이제 다음 챕터에서 이것을 비주얼적으로 표현해보자.

 

다음 챕터로 넘어가기전,

 

NSLog는 CLI 디버깅을 위한것이지 비주얼적으로 나타낼 수 없다.

때문에 showAllSeller를 아래 그림처럼 문자열을 리턴하는 것으로 변경할 것이다.

 

[그림 11] Change showAllseller

searchSeller도 showAllseller처럼 NSString 리턴으로 바꾼다음 다음 챕터로 넘어가자.

 

'Gaebal > iOS' 카테고리의 다른 글

iOS에서 hosts 변경  (0) 2021.04.22
ObjectiveC-1  (0) 2020.01.05
시작  (0) 2019.12.22
Comments