기본 이미지 데이터와 출력 [UIImage imageNamed:] 라는 클래스 메소드를 사용하면 아래와 같은 장점이 있다. - 앱의 기본번들에 대한 경로를 지정하지 않아도 mainBundle 로부터 이미지를 찾아 로드한다.- 파일 확장자를 이용하지 않아도 PNG 이미지를 자동으로 로드한다.- 이미지를 로드할 때 화면의 크기를 고려한다. (scale - @2x, device - ~iphone, ~ipad)- 메모리 캐시 기능을 사용한다. 같은 이미지를 이미 로드한 상태에서 로드 요청을 받으면 기존에 로드한 이미지를 리턴한다. [UIImage imageWithContentsOfFile:] mainBundle 에 없는 이미지를 로드할 경우 사용된다.이때 확장자까지 모두 붙어야 로드가 가능하다. [UIImage..
UIImage, CIImage, CGImage UIImage 이 객체는 이미지 데이터를 보여주기 위한 high-level 수단을 제공한다.파일이나 Quartz 이미지 객체나 raw image 데이터로부터 이미지들을 생성할 수 있다.UIImage 클래스는 이미지 객체를 current graphics context에 그리기 위한 여러가지 옵션을 제공한다. 옵션으로는 blend model나 opacity value를 조정할 수 있다. UIImage 는 다양한 이미지 포맷을 지원한다. 이름 확장자 PNG (Portable Network Graphic) .png TIFF (Tagged Image File Format) .tiff, .tif JPEG (Joint Photographic Experts Group) ...
개념 및 기능 애플은 iOS 장치 상에서 암호화 정보를 저장하기 위해 keychain 이라는 보안 프레임워크를 제공한다. 키체인에 저장한 정보는 관련 앱을 장치에서 삭제한 이후에도 보관할 수 있다. 또한 같은 개발자가 개발한 여러 앱에서 키체인 정보를 공유할 수 있다. 키체인 사용 시점 비밀번호나 키, 인증서, 메모 같이 작은 양의 정보를 보관하는데 사용한다. 만약, 인코딩한 이미지나 비디오 같은 대용량의 정보라면 외부 암호 라이브러리를 사용하는 게 대부분 더 좋다. 키체인을 사용하려면 를 추가하고 를 import 해야한다. 사용 방법 키체인은 키체인 정보를 요청하는 앱의 코드 서명을 근거로 해제할 수 있다. 하나의 Dictionary 로 생각하면 되고, 특정 키값들이 존재한다. 키의 특성은 아래와 같다..
iOS 4 에서부터 백그라운드 작업 기능을 도입했다.백그라운드 작업 기능은 iOS 가 지원하는 방식, iOS 지원하지 않는 방식 2가지로 나뉜다. 1. iOS 지원하는 방식 백그라운드 지원 타입은 아래와 같다. 1) 오디오 재생2) 장치의 위치 추적3) VoIP 앱 지원4) 뉴스 가판대 앱의 새로운 컨텐츠 다운로드5) 외부 블루투스 장치와의 통신6) 백그라운드에서 컨텐츠 가져오기7) 푸시 알림과 함께 백그라운드에서 다운로드 시작하기 구현하려면 2가지를 따라야한다. 1) 프로젝트 파일 -> target -> Capabilities -> Background Modes On 설정2) 프로젝트 파일 -> target -> Info -> + -> Required Background Modes 에서 배열 지정 Ex..
1. Canonical Mapping 유니코드에는 canonical equivalence라는 것이 존재한다. canonical equivalence란, 한 가지의 추상적인(abstract) 문자를 나타내는 문자나 문자열 사이의 기본적인 동등함(fundamental equivalency)을 말하며, 올바르게 표시되었을 때는 똑같이 표현되고 동작해야 한다. 한 문자에 대해 여러 가지 canonical equivalence가 존재하는 것도 가능하다.예를 들어 문자 Ç(U+00C7)와 문자열 C(U+0043) + ◌̧(U+0327)는 서로 같은 추상적인 문자를 나타내므로 canonical equivalence이고, 문자 Ω(U+03A9)와 문자 Ω(U+2126)은 서로 똑같은 추상적인 문자를 나타내므로 cano..
1. 기본 개념 코어 데이터의 뿌리는 NeXT 의 엔터프라이즈 객체 프레임워크 (EOF) 에서 찾을 수 있다.이 프레임워크는 객체를 관계형 데이터베이스로 매핑할 수 있다. 관계형 데이터베이스를 사용하면데이터베이스에 종속적인 로직을 구현하는 대신비지니스 로직을 객체에 구현하게 되므로 적은 양의 코드로 같은 기능을 구현할 수 있다.이를 통해 DB 요구사항보다 앱의 요구사항을 구현하는 데 더 집중할 수 있다. 코어데이터는 애초에 Mac OS X 상에서 단일 사용자를 지원하도록 만들어졌고, 내장 관계형 데이터베이스인 SQLite 에 데이터를 저장한다. 코어 데이터는 다음과 같은 기능을 포함한다.- 시각적인 모델 편집기를 통해 데이터 객체를 모델링한다.- 객체의 스키마가 변경될 경우 마이그레이션 도구를 이용해 처..
1. Frame & BoundUIView 는 특정 UIView 의 자식 요소로 포함됨으로써 화면에 표시된다.자식 요소로 추가될 UIView 는 자신이 보여질 위치와 크기가 결정되어야한다. 자식 요소 위치의 기준점은 부모요소의 기준점으로부터 계산된다.frame 의 좌표는 부모 View 가 기준이므로 origin 위치가 절대값이 아니라는 말과 동일하다.아래 사진에서 흰색 rect 의 frame 은 아래와 같다. frame : 10.000000, 10.000000, 100.000000, 100.000000 UIView 는 frame 외에 bounds 속성을 가진다. 두 속성 모두 CGRect 타입으로 위치와 크기를 나타내지만 의미하는 바가 다르다. bounds 는 자신을 기준으로 한다. 위 흰색 rect 의 ..
1. UIDocumentInteractionController 의 사용 UIDocumentInteractionController 는 sandbox 내부의 파일과의 사용자 상호 작용을 관리하기 위한 클래스이다.예를들어 이메일 앱에서는 사용자가 첨부파일을 미리보고 다른 앱에서 열 수 있도록한다.또한 지정된 파일을 미리 보거나 열거나 복사, 인쇄할 수 있는 적절한 UI 를 제공한다. UI 를 나타낸 후 UIDocumentInteractionController 는 파일 미리보기 및 메뉴 표시에 대한 동작들을 담당한다. self.documentController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];self.documen..
1. 간단한 Retain Cycle @interface Item : NSObject@property (nonatomic, strong) Item* value1;@property (nonatomic, strong) Item* value2;@end - (void)someMethod {Item *a1 = [[Item alloc] init];Item *a2 = [[Item alloc] init];a1.value2 = a2;} 객체 참조카운트 a1 1 a2 2 @interface Item : NSObject@property (nonatomic, strong) Item* value1;@property (nonatomic, strong) Item* value2;@end - (void)someMethod {Item *..
- Total
- Today
- Yesterday
- ios
- NSManagedObject
- docker
- workerThread
- NSManagedObjectModel
- EffectiveObjectiveC
- set
- Block
- 꺼내먹어요
- applicationWillResignActive
- CGImage
- Swift 3.0
- RunLoop
- UIView
- coredata
- AWS
- optional
- dictionary
- Swift
- thread
- Swift3
- Swfit
- Arc
- Swift 3
- string
- delegate
- CIImage
- 읽기 좋은 코드가 좋은 코드다
- NSManagedObjectContext
- HTTP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |