iOS Developer38 3. Objective-C 자료형 데이터 타입은 데이터가 메모리 공간을 얼마나 차지하는지,메모리의 비트가 어떻게 해석되는 지에 필요하기에 매우 중요하다. (극악무도한 c의 포인터에서 느낄 수 있다.) 1. 기본타입(정수형, 실수형)Integer Types 정수형정수형의 정확한 사이즈를 알고 싶으면 sizeof를 사용하면 된다. sizeof를 통해 해당 타입의 바이트 수를 알 수 있다. NSLog(@"int size: %d", sizeof(int)); Floating-Point Types(실수형)2. Void Type 값이 없음을 나타내는 타입주로 함수가 값을 반환하지 않거나, 포인터가 어떤 타입의 값을 가리키지 않음을 나타낸다.(C에서 malloc을 하면 void 포인터를 반환해서, 해당 포인터를 캐스팅 해서 사용해줬던 것을 생각해보자... 2024. 5. 5. 2. Objective-C / 기본 구문 및 구조 Objective-C 프로그램의 기본 구성 요소 - 전처리 명령- 인터페이스- 구현- 메서드- 변수- 클로저 등 표현식(코드블럭)- 주석 // 컴파일러가 실제 컴파일을 시작하기 전에 헤더파일을 포함하도록 지시하는 전처리기 명령어#import // 모든 객체의 부모 클래스인 NSObject를 상속하는 클래스 인터페이스를 선언한다.@interface SampleClass: NSObject// 부호 (반환타입)메서드명(파라미터타입)파라미터명 으로 메서드를 선언한다.// - 는 인스턴스 메서드를, +는 클래스 메서드를 의미한다.(static)- (void)sampleMethod;//중괄호 대신 인터페이스 선언부가 끝났음을 @end로 표기한다. //빼먹기 좋을 거 같으니까 시작하면 그냥 @end 같이 치고 시작하.. 2024. 5. 5. 1. Objective-C / Hello world! Objective-C (옵젝씨라고도 부름)는 Swift 이전에 iOS, Mac OS 개발에 사용된 언어로이름에서 알 수 있듯이 객체지향의 4가지 근간인 (캡슐화, 데이터 숨기기, 상속, 다형성)을 지원한다. 가장 기본적인 Hello world를 찍어보고 관련 개념들을 알아보자. 자바처럼 좀 길다..??? : print("Hello world!") #import int main(int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog (@"hello world"); [pool drain]; return 0;} #import헤더파일을 구현 파일에 포함시키는.. 2024. 5. 3. 2. Sign In With Apple / 애플 로그인 / Firebase Sign In With Apple *로그인 서비스를 제공하는 경우, iOS 앱에서 애플 로그인은 필수. 애플 로그인만 있어도 되고, 애플 로그인 + a의 형태로 되어야함. 개발자 계정이 있어야 하고, Apple ID iCloud를 활용하는 방식임. 1. Authentication Sign-in method에서 Apple 추가 2. Certificates, Identifiers & Profiles(인증서, 식별자, 프로필 설정) 로그인 - Apple idmsa.apple.com 개발자 프로그램에 가입한 계정의 경우, 앱 타겟의 Signing & Capabilities에서 손쉽게 인증 관련 설정을 할 수 있다. 3. 로그인 버튼 만들기 https://developer.apple.com/design/human.. 2023. 7. 15. 4. async let async let VStack { ... } .onAppear { Task { await doSomething() await doSomething2() await doSomething3() ... } } 위 간단한 예시를 보면, Task 내부에서 비동기 작업들이 순차적으로 실행될 것이다. doSomething의 완료를 기다리고 -> 2가 실행되고 완료되고 나서 -> 3이 실행될 것이다. 이렇게 순차적으로 하나하나 기다리는 대신, 비동기적으로 각각의 작업이 수행되도록 할 수는 없을까? 여기서 async let을 사용할 수 있다. 먼저 URL을 통해 여러 이미지를 다운 받는 상황을 가정해보자. 네비게이션 스택 -> 스크롤뷰 -> LazyVGrid 내부에 이미지를 표시한다. import SwiftUI stru.. 2023. 7. 12. 3. Task/ .task / cancel() / priority / detached Task/ .task / cancel() / priority / detached Task에 대해 알아보고, 관련 개념 및 사용법을 살펴보자. https://developer.apple.com/documentation/swift/task Task | Apple Developer Documentation A unit of asynchronous work. developer.apple.com Task는 비동기 작업의 실행 단위이다. Task 인스턴스를 초기화 할 때 클로저를 통해 Task가 수행할 작업을 명시한다. Task는 초기화 즉시 동작을 시작하기 때문에 명시적으로 작업시작!을 해줄 필요가 없다. 또한 Task 인스턴스를 초기화 하고 나서 Task가 완료되는 것을 기다리거나 취소할 수 있다. Task가 .. 2023. 7. 12. 이전 1 2 3 4 5 6 7 다음