결론Queue 의 동작과 Thread 와는 관계가 없다. dispatch_sync 로 실행했다면 실행한 Thread 에서,dispatch_async 로 실행했다면 WorkerThread 에서 동작한다. Queue type 이 SERIAL 인지 CONCURRENT 인지는 중요하지 않다. Test codeSerial Queue dispatch_queue_t serialQueue = dispatch_queue_create("serial", DISPATCH_QUEUE_SERIAL); dispatch_sync(serialQueue, ^{ NSLog(@"serialQueue_sync : %@", [NSThread isMainThread] ? @"YES" : @"NO"); //YES }); dispatch_async..
Carthage 를 사용하는 이유가장 처음에는 XCode 에서 지원하는 Static Library 를 썼었다.이후 CocoaPods 이 나오면서 새로운 버전 관리 방식과 implementation source 를 함께 볼 수 있는 큰 장점으로많은 사람들이 이동했다. 하지만 시간이 지날수록 개발자들은 불편함을 느꼈다. 그 이유로는 첫째, 소스를 모두 받아서 컴파일 시 함께 빌드하는 방식을 사용한다.따라서 프로젝트에 다른 open source 들을 많이 사용한다면 (dependency 가 높다면)컴파일 속도가 현저히 느려지게 된다. 둘째, .workspace 라는 개념이 생겼다.원래 프로젝트에 더해 Pods 프로젝트가 생기게 된다.pod update 를 하게 되면 Pods 프로젝트와 내 프로젝트 모두에 영향..
우선 코드 사이닝의 가장 중요한 개념은 오직 애플만이 자신들의 하드웨어에서 어떤 소프트웨어가 동작하도록 허락할 수 있다. 실제로 매번 앱이 실행될 때마다 앱은 애플로부터 인증을 받았는지즉, 앱을 실행할 수 있는 권한을 가지고 있는지 확인한다. 1. Apple 인증서 애플만이 앱을 실행할 권한을 가진다면, 개발자들은 어떻게 디바이스에서 테스트할 수 있을까?해답은, 애플이 개발자를 신뢰하여 애플 대신 앱을 실행할 수 있는 권한을 부여받는다. 인증서의 역할은 개발자가 애플 대신 앱을 사인할 수 있는 권한을 가지게한다. 인증서는 "키체인 접근" 앱에서 만들 수 있는데, 여기서 Certificate Signing Request (CSR) 을 생성해야한다. 1. "키체인 접근" 앱은 공개키와 개인키를 자동으로 생성..
텍스트키트는 iOS 7의 일부분으로 발표되었으나 전통적 의미의 프레임워크는 아니다.기존의 클래스들을 강화하여 NSAttributedString 을 쉽게 다룰 수 있게 설계되었다. NSLayoutManager NSTextStorage 클래스의 객체에 저장되어 있는 문자들의 레이아웃과 출력을 담당한다.복잡한 텍스트 레이아웃을 생성하기 위해여러 개의 UITextView 객체를 함께 이용해 렌더링할 때도 이용할 수 있다.NSLayoutManager 는 NSTextContainer 클래스의 객체를 추가, 삭제, 정렬 등의 작업을 할 수 있는 여러 메소드들을 가지고 있다.또한 NSTextStorage 객체를 프로퍼티로 갖고 있다. 동적 링크 탐지 UITextView 에서 가능하며 (UILabel 은 불가).xib ..
코어 이미지는 이미지나 비디오에서 얼굴이나 얼굴의 특징을 탐지할 수 있는 기능을 제공한다. 안면 인식기 설정 코어 이미지에서 안면 인식기를 사용하려면 CIImage 객체가 필요하다. UIImage *detectUIImage = [self.sourceImageView image];CGImageRef detectCGImageRef = [detectUIImage CGImage]; CIImage *detectImage = [CIImage imageWithCGImage:detectCGImageRef]; NSDictionary *options = @{CIDetectorAccuracy : CIDetectorAccuracyHigh}; CIDetector *faceDetector = [CIDetector detector..
Core Image Filter 코어 이미지 필터는 입력 이미지와 필터의 동작을 설정하는 옵션을 매개변수로 사용한다.적용할 필터의 리스트를 지정하면 각필터를 지정했을 때계산을 실행하는게 아니라 최종 출력 이미지를 요청할 때만이 필터들을 한꺼번에 모두 적용한다. 필터 카테고리와 필터 코어 이미지 필터는 내부적으로 카테고리 단위로 구성된다.한 필터는 하나 이상의 카테고리에 속할 수 있다.카테고리를 이용해서 원하는 작업에 어떤 코어 이미지 필터들이 필요한지 결정할 수 있다. CategoryKey 를 이용하여 CIFilterArray 를 구할 수 있다.(https://developer.apple.com/library/content/documentation/GraphicsImaging/Reference/CoreI..
기본 이미지 데이터와 출력 [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..
- Total
- Today
- Yesterday
- Swift3
- 읽기 좋은 코드가 좋은 코드다
- Swfit
- coredata
- Swift
- delegate
- ios
- EffectiveObjectiveC
- AWS
- NSManagedObjectContext
- NSManagedObject
- UIView
- optional
- string
- applicationWillResignActive
- CGImage
- HTTP
- thread
- Block
- Swift 3
- set
- 꺼내먹어요
- docker
- dictionary
- NSManagedObjectModel
- workerThread
- CIImage
- Swift 3.0
- RunLoop
- Arc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |