Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

iOS Developer/Objective-C21

10. Objective-C Arrays 배열 Objective-C에서 배열은 '같은 타입'의 요소들이 '연속적으로 저장'된 '고정된 사이즈'의 자료구조이다.배열의 원소는 연속적인 메모리 공간에 저장되어 있어  index로 접근 가능하며(0이 맨 첫번째) 가장 낮은 주소가 첫 번째 요소, 가장 높은 주소가 마지막 요소를 가리킨다.배열 선언요소의 타입과 배열의 사이즈를 명시적으로 작성해준다.(배열의 사이즈는 0초과의 정수 리터럴이며, 타입은 크게 구애받지 않는다.)type arrayName [arraySize];//declaredouble balance[10];//초기화 해주지 않아서 0이나 쓰레기 값이 들어있다.배열 초기화double balance[5] = {1000.0, 2.0, 3.0, 50.0, 100.0};//사이즈를 생략하면 배열의 요소 개.. 2024. 5. 7.
9. Objective-C NSNumbers NSNumber는 기본 데이터 타입(int, float, double)을 객체로 감싸는 래퍼 클래스이다.Objective-C에서 컬렉션 클래스는 기본 타입이 아닌, 객체 타입만 저장할 수 있기 때문에 래핑하는데 주로 사용된다.또한 비교나 연산작업을 할 때 더 편리한 기능들이 제공된다. NSNumber 객체를 생성하고, value를 뽑아내는 예시 코드는 아래와 같다. #import int main(int argc, const char * argv[]) { @autoreleasepool { // NSNumber 객체 생성 NSNumber *boolNumber = [NSNumber numberWithBool:YES]; NSNumber *charNumber = [NSN.. 2024. 5. 7.
8. Objective-C Blocks 블록 블록이란?Objective-C의 클래스는 여러 데이터와 관련된 여러 메서드로 이루어져 있다. (프로퍼티와 메서드)하지만 작업을 하다 보면 여러 메서드의 조합 보다는 하나의 작업만 수행해도 되는 경우가 있다. 즉 클래스까지 따로 만들 필요는 없는 경우를 말한다. Block은 값인 것처럼 함수에 전달될 수 있는, 코드 덩어리를 하나의 단위로 캡슐화 하는데 사용되는 객체이다.익명함수,람다와 비슷하고 Swift에서 클로저라고 생각하면 되겠다.(클로저는 Swift에서 1급 객체이다.) 블록 또한 1급 객체로,변수나 상수에 할당이 가능하고, 다른 함수의 파라미터로 전달 가능하고,함수의 반환 값으로 사용 가능하며 배열과 같은 자료구조에 저장할 수 있다.블록 활용처- GCD를 통한 비동기 작업- 콜백함수의 인자- 컬렉.. 2024. 5. 7.
7. Objective-C 함수(call by value, call by reference) 함수는 작업을 수행하기 위한 여러 문장의 모음이라고 할 수 있다. 프로그램의 시작점인 main()함수를 비롯해, 추가적인 함수를 필요에 따라 정의할 수 있다.재사용성, 모듈화 등등 함수와 관련된 기법보다는 정말 기본 개념을 알아보자. 이건 정말 그냥 코드 짜면서 해봐야 느는듯..함수 선언(Declaration)컴파일러에게 함수의 이름, 반환타입, 파라미터에 대한 정보를 전달한다.int add(int num1, int num2); //전방 선언~~~~//함수 구현int add(int num1, int num2) { return (num1 + num2);}함수 정의(Definition)함수의 body 파트를 구현하는 것을 의미한다. 기본적으로 옵젝씨에서는 함수를 메서드라고 부르고,문자열에 문자열을 더하.. 2024. 5. 6.
6. Objective-C 반복문/조건문 반복문while, do while, for, nested 전부 그대로 지원한다.while(condition) { statement(s);}do { statement(s);} while (condition);for(init; condition; increment) { statement(s);}//infinite loopint main() { for( ; ; ) { NSLog(@"INFINITE LOOP\n"); } //Never be executed.. return 0;} continue, break#import int main() { int a = 10; while(a 15) { break; } retur.. 2024. 5. 6.
4. Objective-C 변수/상수 변수 선언type 변수명(다수 가능);int i, j, k;char c, ch;float f, salary;double d; 당연히 같은 스코프 내에서 같은 이름으로 재선언은 불가능하다. 변수 초기화/* 다른 파일에서 정의된 전역 변수,함수를 현재 파일에서 사용할 때 extern키워드 사용*/extern int d = 5, f = 5;int a = 3;byte z = 22;char x = 'c'; 변수 초기화를 해주지 않으면 쓰레기값이 들어있기 때문에 꼭 초기화를 해주고 사용하자! // 컴파일러에게 외부 변수의 존재를 알림(현재 파일에 정의되지 않았으니 외부에서 참조하겠다)// C-스타일의 전방 선언 (declaration)extern int externalInt;int main (void) { //변.. 2024. 5. 6.