Objective-C Basic 1.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Objective-C Basic 1.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
Power Java 제3장 이클립스 사용하기.
㈜디아이씨 SSLVPN 협력사 접속방법 2017년 4월.
Power Java 제2장 자바 개발 도구.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
자료 구조: Chapter 3 (2)구조체, 포인터
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
5장. 참조 타입.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
1. C++ 시작하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
제 2 장 WML 시뮬레이터 및 무선인터넷 서버 설치
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
WinCE Device Driver 실습 #2
6장. printf와 scanf 함수에 대한 고찰
14장. 포인터와 함수에 대한 이해.
13. 연산자 오버로딩.
Method & library.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
인터넷응용프로그래밍 JavaScript(Intro).
Lesson 4. 수식과 연산자.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
IPython Notebook + Spark + TensorFlow on MacOS
영상처리 실습 인공지능연구실.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
자바 5.0 프로그래밍.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
Cold Spring Harbor Laboratory Press 저널 이용 매뉴얼
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Tensorboard in Windows
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Numerical Analysis Programming using NRs
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
7 생성자 함수.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

Objective-C Basic 1

1. X-Code & SDK 다운로드 및 설치 X-Code 다운로드 사이트 http://developer.apple.com/iphone/index.action 위의 사이트에서 다운로드 받은 프로그램을 더블 클릭해서 설치 설치 확인 Finder - 자신의 하드디스크 - Developer – Application – Xcode를 확인 설치된 버전 확인 [XCode] – [About Xcode] 로 확인합니다. 삭제(root 패스워드 필요) - 터미널에서 작업 sudo /Developer/Library/uninstall-devtools –mode=all 재설치 sudo rm -rf /Developer/* root 패스워드 변경(기존 계정의 패스워드가 있어야 합니다.) sudo passwd root root 접속 sudo su - root 2 2

Developer 디렉토리 Application Dashcode, Instruments, Quartz Composer, Xcode 앱 등이 설치된 디렉토리 Documents Xcode, Perl, Python, wxWidgets 의 개발 문서 디렉토리 Examples 예제 파일 디렉토리 Extras: 64비트 앱 변환 툴, 코어 이미지 대시보드 위짓, 코어 오디오와 사전용 개발 예제 Headers: 카본용 헤더들과 소스 변환용 스크립트 Library: 개발환경과 프레임워크, Quartz Composer 등의 라이브러리 Makefiles: 내부 프로젝트 구성 요소 Platforms Xcode와 인터페이스 빌더, 인스트루먼트의 플러그인과 내부 구성 요소 및 아이폰 버전별 SDK와 프레임워크, 라이브러리와 개발 문서등이 포함되면 아이폰 시뮬레이터와 버전별 내부 앱과 라이브러리가 있는 디렉토리 SDKs: Mac OS X 10.? 프레임워크 라이브러리와 헤더 포함 Tools: UNIX 명령어 도구들 Usr: UNIX 시스템 도구 들과 헤더, 라이브러리, 컴파일 환경이 포함된 디렉토리 3 3

예제 1.XCode를 실행 Developer 폴더 안에 있는 Applications 폴더에서 Xcode 아이콘을 찾아 더블 클릭하면 Xcode가 실행됩니다. Xcode가 실행되면 네비게이션 윈도우가 표시됩니다. (설정에 따라 나오지 않을 수도 있습니다.) 4 4

2.[File] – [New] - [New Project]를 클릭하고 MAC OS X 아래의 [Application] - [Command Line Tool]을 선택하고 아래 옵션에서 Foundation을 선택하고 프로젝트 이름 입력(First) 한 후 저장 위치를 설정 5 5

6

3. main. m 파일의 소스 코드 확인 #import <Foundation/Foundation 3.main.m 파일의 소스 코드 확인 #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSLog(@"Hello, World!"); } return 0; } 7 7

4.툴바의 아이콘 중에서 Run을 눌러서 컴파일과 실행 Product 메뉴의 Run을 눌러도 됩니다. 8 8

프로젝트 네비게이터 영역 화면에서 보이지 않으면 [View] – [Navigators] – Show 메뉴 중에서 아무거나 선택 9 9

프로젝트 네비게이터 영역 프로젝트 네비게이터: 프로젝트 내의 파일 구성을 출력 심벌 네비게이터: 클래스 계층과 메서드 등을 출력 Find 네비게이터: 찾기 이슈 네비게이터: 오류나 경고 등을 출력 디버그 네비게이터 브레이크 포인트 네비게이트 로그 네비게이터 10 10

X-Code 도움말 도움말은 다운로드 받아서 사용해야 합니다. [X-Code] - [Preference] – Documents 탭 에서 다운로드 받을 수 있습니다. 11 11

1. [help] – [Documentation and API Reference]을 이용 도움말 사용 1. [help] – [Documentation and API Reference]을 이용 2. 도움말을 보고자 하는 클래스나 메서드를 선택한 후 Command + 클릭 : 클래스가 정의된 파일로 이동 Option + 클릭 : 풍선 도움말 Control + Option + Command + ? : 문서로 바로 이동 12 12

파일 헤더 파일의 확장자는 h로 C언어와 동일합니다.(C++ → hpp) 클래스의 내용을 구현하는 파일의 확장자는 m입니다. (c, cpp, mm, py 등이 될 수 있습니다.) pch 파일은 PreCompiledHeader의 약자로 미리 컴파일 해두고 사용하겠다는 의미의 파일입니다. pch 파일에 포함되어 있는 import 구문은 프로젝트 내의 다른 파일 모두에 import되어 있는 것과 동일한 효과를 나타내게 됩니다. Cocoa 프로그래밍에서는 확장자가 l인 파일은 프로젝트의 정보를 가지고 있는 파일입니다. Cocoa Touch 프로그래밍에서는 plist 파일이 설정 내용을 저장하고 있습니다. 13 13

프로그램 기본 구조 헤더파일을 프로젝트에 추가할 때는 C언어의 #include 대신 #import 이용 의미는 같지만 import는 여러 번 사용해도 한 번만 import됩니다. SDK가 제공하는 헤더파일은 < >안에 기재하며 프로젝트 작업 시 생성한 파일들은 “ “안에 기재합니다. 프로그램의 entryPoint가 main으로 시작하는 것도 C언어와 동일합니다. main의 구조는 C언어와 동일합니다. NSLog는 메시지나 변수를 서식에 맞추어 콘솔 창에 출력해주는 메서드입니다. C언어의 printf와 유사합니다. 메시지를 출력할 때는 @”문자열”의 형태로 사용됩니다. 문자열 상수를 unicode로 나타내려면 X-Code에서는 @를 앞에 붙여서 작성 const char * 은 “문자열”의 형태로 사용 주석을 처리하는 방법은 C언어 에서와 동일 // 한 줄 주석, /* 여러 줄주석*/ 블럭에 이름 붙이기 #pragma mark 이름 14 14

2.자료형 1.정수 int: 정수 상수의 기준형 앞에 long을 붙여서 long형을 만들 수 있습니다. 작은 정수를 저장하는 short도 있습니다. unsigned를 가능 %d, %i, %u, %x 등을 이용해서 출력합니다. =>Objective-C: NSInteger, NSUInteger 2.실수 float은 작은 실수를 저장할 때 사용하며 4바이트를 차지합니다. double은 실수 상수의 기준 자료형이며 float 형 실수 상수는 숫자 뒤에 f를 붙여서 표기 double은 기본적으로 8바이트를 차지하며 출력할 때는 %f, %g, %e를 이용합니다. =>Objective-C: CGFloat 15 15

unichar는 유니코드 문자를 나타내며 2바이트 문자입니다. 출력을 할 때는 %C를 이용합니다. 4.논리형 3. 문자 char를 이용하며 1바이트 문자입니다. 출력을 할 때는 %c 또는 %d를 이용합니다. unichar는 유니코드 문자를 나타내며 2바이트 문자입니다. 출력을 할 때는 %C를 이용합니다. 4.논리형 BOOL로 표시하며 1바이트를 차지하고 값은 YES와 NO가 있으며 출력은 %d로 합니다. 0이나 nil은 NO로 간주하며 0이 아닌 일반 변수나 nil이 아닌 id는 YES로 간주 5.포인터 타입 자료형과 *을 이용해서 포인터 타입의 변수를 생성할 수 있습니다. 6. id 객체를 가리킬 수 있는 데이터 타입 *이 없지만 id는 참조형입니다. 16 16

예제 17 17

1.Mac OS X의 Command Line Tool 프로젝트 생성(DataType) 2.main.m 파일의 코드 수정 int main (int argc, const char * argv[]) { @autoreleasepool //한 줄 주석입니다. unsigned int data = -1; //%d는 데이터를 부호가 있는 형태로 읽기 때문에 -1 //%u는 데이터를 부호가 없는 형태로 읽이 때문에 가장 큰 정수로 출력 NSLog(@"부호있는 정수:%d \n부호없는 정수:%u ", data, data); char str[] = "Hello World"; NSLog(@"str:%s", str); NSLog(@"str[0]:%c", str[0]); NSLog(@"str[1]부터 끝까지:%s", &str[1]); BOOL isOK=YES; //BOOL 타입의 메모리 사이즈는 1바이트 NSLog(@"BOOL Memory Size:%ld byte", sizeof(isOK)); NSLog(@"isOK:%d", isOK); //16진수 41 => 10진수 65 => 대문자 A unichar uchar = 0x0041; NSLog(@"unichar:%C", uchar); } return 0; 18 18

id 타입 Objective-C 언어는 runtime 시에 객체나 메서드를 결정하므로 기존의 데이터 타입을 미리 기재하는 static typing 이외의 방법이 필요합니다. Objective-C는 모든 참조형 데이터(힙에 생성)를 전부 포인팅 할 수 있는 타입(참조형)을 id라는 데이터 타입으로 가지고 있습니다. C언어의 void * 개념과 id는 유사합니다. id타입을 사용하기 위해 Objective-C에서는 모든 객체에게 isa 라는 instance variable을 멤버로 소유하게 했습니다. isa는 객체가 사용할 클래스 객체의 id를 저장하게 있는데 이것을 이용해서 runtime 시에 데이터 타입을 알아낼 수 있게 됩니다. Objective-C에서 참조형을 선언할 때 사용한 데이터 타입은 실제적으로는 id 타입입니다. Objective-C에서는 참조형 변수의 경우 선언 시 사용한 데이터 타입과 대입될 때 사용되는 객체의 데이터 타입이 다르면 경고일 뿐 에러가 아닙니다. 일반 값 타입의 자료형 변수의 주소를 대입하면 경고 발생 19 19

예제 20 20

1.Mac OS X의 Command Line Tool 프로젝트 생성(idTest) 2.main.m 파일의 코드 수정 #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool int n = 10; //경고 발생 void *vp = &n; NSLog(@"vp가 가리키는 값: %d 주소:%d",*((int *)vp), vp ); //id는 변수가 참조형임을 알리는 데이터 타입 id obj = &n; NSLog(@"obj가 가리키는 주소:%d",obj ); //아래 줄은 XCode4에서는 에러이고 XCode3에서는 유효한 코드 //NSLog(@"obj가 가리키는 주소:%d\n 값:%d",obj, *obj); } return 0; 21 21

3.연산자 (): 연산의 우선 순위 변경 []:배열의 첨자 또는 메서드 호출 ->:구조체의 멤버 필드 참조 . :구조체의 멤버나 객체의 프로퍼티 호출 - : 2의 보수 +:양수 ++:1증가 –:1감소 !: NOT ~:1의 보수 *:포인터 변수의 데이터 참조 &: 일반 변수의 주소 sizeof: 메모리 크기 (자료형): 강제 형 변환 *:곱셈 /:나눗셈 %:나머지 +: 덧셈 -: 뺄셈 <<:왼쪽 시프트 >>:오른쪽 시프트 22 22

<: 작다 <=: 작거나 같다 >: 크다 >=: 크거나 같다 ==: 같다 !=: 다르다 &: 비트 AND ^: 비트 XOR |: 비트 OR &&: 논리 AND ||: 논리 OR ?: : 삼항 연산자 =: 할당 연산자 *=, /=, %=, += -=, &=, ^=, |= <<=, >>= ,: 컴마 연산자 23

예제 24 24

1.Mac OS X의 Command Line Tool 프로젝트 생성(OperatorTest) 2.main.m 파일의 코드 수정 #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool int n = 10; NSLog(@"정수의 메모리 크기 : %ld 바이트",sizeof n); float f = 10.7; n = f; NSLog(@"n의 값: %d",n); n = (f+0.5); n = n << 2; n = 4 | 1; n = 1022 & 2; n = 1021 & 2; } return 0; 25 25

4.제어문 예제 26 26

1.Mac OS X의 Command Line Tool 프로젝트 생성(ControlState) 2.main.m 파일의 코드 수정 #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool int cnt = 0; for(int i=2; i<=100; i++) for(int j=2; j<=i; j++) if(i % j == 0 && i == j) NSLog(@"%d", i); cnt++; break; } else if(i%j==0) else continue; NSLog(@"============================="); NSLog (@"2부터 100까지 소수의 개수: %i개", cnt); return 0; 27 27