Objective-C에서 문자열은 NSString클래스의 인스턴스이다. 문자열을 생성하는 방법은 클래스 메서드를 사용해 자동을 소멸하는 인스턴스를 생성하거나, alloc 메서드를 사용해 인스턴스를 생성한 후 이니셜 라이져로 초기화하는 방법이 있다. 그중에서도 포맷을 지정해서 문자열을 생성하는 방법이다. stringWithFormat 메서드 활용하고, 인스턴스를 만들고 싶을 때는 alloc메서드를 생성한 뒤 initWithFormat: 메서드를 사용하면 된다. int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str; int i = 10; str = [NSString stringWithFormat:@"int를 출력해보자 %d 이렇..
현재 진행하는 프로젝트에서 API 리퀘스트를 날려 받아온 데이터를 디코딩하고 넣어줍니다. 프로퍼티가 새로운 데이터가 들어옴을 감지하면 tableView를 리로드 시켜줍니다. 사실 스위프트에서는 그냥 프로퍼티 옵져버를 사용하는데요. 오브젝티브씨에서는 KVO key value observing이라는 친구가 있습니다. KVO는 오브젝트 값의 변화를 통지, 감시하기 위한 구조입니다. 특정 인스턴스의 특정 프로퍼티가 변화했을 때를 파악해 그에 맞는 처리를 할 수 있습니다. 위에서 오브젝트 값의 변화를 통지, 감시한다라고 했죠. KVO를 사용하려면 먼저 NSObject를 상속받아야 합니다. 즉 클래스여야 합니다. KVO를 그림으로 나타내자면 아래와 같은 흐름입니다. 이제 실제로 사용해봅시다. KVO로그를 찍기 위해..
옵젝씨에서 id타입은 클래스 인스턴스에 대한 포인터입니다. 옵젝씨의 클래스의 인스턴스는 모두 id 타입입니다. 일반적으로 메서드나 클래스에서 파라미터나 리턴 값으로 많이 사용하곤 합니다. 하지만 id 타입 메서드를 호출하는 것엔 주의해야 하는 점이 있는데요. 예를 들어 MyClass를 정의해줍니다. 그리고 YourClass를 정의합니다. 그리고 안에 saySomething이라는 메서드를 정의해주고 구현해줍니다. 메인 함수에서 myClass인스턴스 my1 그리고 my2를 생성했습니다. 둘 다 myClass인스턴스입니다. 이제 my1의 saySomething을 불러보도록 하겠습니다. 뭔가 이상하죠. 네 saySomething은 MyClass에 정의된 메서드가 아니라, YourClass에 정의된 메서드입니다...
먼저 클래스란 무엇일까요? 클래스는 데이터와 데이터를 다루는 행위를 정의하는 것입니다. 또한 객체 상태를 나타내는 필드와 객체 행동을 나타내는 메소드로 구성됩니다. 엥 갑자기 객체? 그럼 클래스는 뭐고 객체는 뭘까요? 클래스와 객체의 차이에 대해서 학교 다닐때 부터 많이 많이... 들었을 겁니다. 붕어빵 틀... 그리고 붕어빵 네 붕어빵 틀에서 붕어빵이 만들어지죠. 클래스에서 객체를 생성해냅니다. (객체를 만들어 내기 위한 설계도, 틀과 같은 개념을 클래스라고 합니다.) 간단하게 클래스와 객체에 대해서 파악했습니다. 그럼 옵젝씨에서 클래스는 어떻게 선언할까요? 새로운 파일을 먼저 만들어 줍시다. 클래스명은 Car으로 작성했습니다. NSObject의 서브클래스입니다. 언어는 당연히 옵젝씨. 그리고 다음 버..
먼저 오브젝티브-C란 무엇일까요? (오브젝티브씨 너무 길어서 줄여서 옵젝씨로 작성하겠습니다.) 옵젝씨는 1980년대에 C언어에 스몰토크 스타일의 메시지 구문을 추가한 객체 지향 언어입니다. 또한 OS X및 iOS용 소프트웨어를 작성할 때 사용하는 기본 프로그래밍 언어입니다. (애플의 코코아 프레임워크를 사용하기 위한 언어) 여기까지 대충 옵젝씨에 대해서 알아보았습니다. 그럼 프로젝트를 생성하고 만들어진 main.m파일을 다시 한번 봅니다. 이대로 실행버튼을 누르면 Hello World! 가 출력되는 걸 확인할 수 있습니다. 여기서 NSLog는 무엇일까요? NSLog란 디버그 영역의 콘솔에 정보를 출력하기 위한 것 입니다. NSLog(@”문자열 포맷", 인자) 이렇게 사용할 수 있습니다. 문자 말고 다른 ..
첫 시작 먼저 오브젝티브 씨는 씨언어가 확장된 언어입니다. 씨언어를 대학교 1학년 때 배웠던 경험이 있어서 엄청 낯설지는 않네요. 먼저 프로젝트를 생성해줍니다. 연습을 목적으로 프로젝트를 생성하는 것이니 command line tool으로 생성해주겠습니다. 다음 프로젝트 이름을 작성해줍니다. 항상 언어를 스위프트로 작성했는데 오늘은 옵젝씨로 변경해줍니다. 프로젝트가 저장될 곳을 선택한 후 프로젝트 생성 완료. 가장 다른 점은 main.m이라는 파일이 있습니다. 스위프트에서도 프로젝트를 생성하면 main은 생성되는데 .m은 과연 무엇인지 알아보겠습니다. 아까 옵젝씨는 씨언어를 확장한 언어라고 했는데 main이 바로 그 진입 지점입니다. 파일의 구조의 첫 줄을 살펴봅시다. 이 부분은 헤더 파일을 읽는 부분입..
- Total
- Today
- Yesterday
- swift5
- Algorithm
- ios
- 책 추천
- Deep learning
- objective-c
- 딥러닝
- 독서
- Animation
- 문자열
- objc
- leetcode
- rxswift
- Xcode
- ReactiveX
- 머신러닝
- RX
- iOS SwiftUI
- wwdc
- 알고리즘
- 스위프트
- 책
- string
- 애니메이션
- stanford SwiftUI
- swiftUI
- 책 후기
- SWIFT
- ARC
- 스위프트UI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |