출처http://seorenn.blogspot.kr/2015/12/swift-gcd-dispatch-semaphore.html DispatchSemaphore 를 사용하는 이유serial dispatch queue 또는 dispatch_barrier_async 함수보다작은 단위를 가진 소스코드의 작은 부분에 대한 동시성 제어가 필요한 경우 사용한다. DispatchSemaphore 사용하기DispatchSemaphore 의 init 시 사용되는 value 는 자원 개수를 뜻한다. semaphore.wait() 는 value 값을 줄이고,semaphore.signal() 은 value 값을 증가시킨다. value 값이 음수가 되면 해당 스레드는 동작을 멈추고 자원을 얻기위해 기다린다. .distantFut..
출처http://kka7.tistory.com/8 함수 정의와 호출 기본 형식func greetAgain(person: String) -> String { return "Hello again, " + person + "!"} print(greetAgain(person: "Anna")) 파라미터 없는 함수func sayHelloWorld() -> String { return "hello, world"} print(sayHelloWorld()) 여러개의 파라미터를 가진 함수 func greet(person: String, alreadyGreeted: Bool) -> String { if alreadyGreeted { return greetAgain(person: person) } else { return g..
출처http://kka7.tistory.com/7 흐름제어Swift 의 for-in 문은 array, dictionary, range, string, sequences 에서의반복을 쉽게해준다. switch 의 case 는 다음 case 로 넘어가지 않는다.일반적인 C 에서 break 문을 빼먹는 실수로 발생되는 오류를 피하게해준다. For Loop for index in 1...5 { print("\(index) times 5 is \(index * 5)") } 특별히 index 가 필요없다면 아래와 같이 ( _ ) 언더바를 이용할 수 있다. let base = 3let power = 10var answer = 1 for _ in 1...power { answer *= base} print("\(base..
출처http://kka7.tistory.com/4 할당 연산자 ( = )할당 연산자는 a 의 값을 b 의 값으로 초기화 하거나 갱신한다.우측이 어려 값을 갖는 튜플이면 한번에 여러개의 상수나 변수 요소들로 분해할 수 있다. let (x, y) = (1, 2) Objective-C 와 다르게Swift 에서의 할당 연산자는 값을 반환하지 않는다. if x = y { // This is not valid, because x = y does not return a value. } 이 기능은 할당 연산자가 우연치 않게 동등 연산자로 사용되는 것을 막아주기 위해 도입되었다. 산술 연산자 ( + , - , * , / )Objective-C 와는 다르게 Swift 는 기본적으로 overflow 값을 허용하지 않는다.S..
- Total
- Today
- Yesterday
- 읽기 좋은 코드가 좋은 코드다
- EffectiveObjectiveC
- NSManagedObject
- set
- Swift 3
- coredata
- ios
- UIView
- Arc
- applicationWillResignActive
- Swfit
- Swift3
- CGImage
- RunLoop
- delegate
- NSManagedObjectContext
- workerThread
- optional
- HTTP
- 꺼내먹어요
- NSManagedObjectModel
- dictionary
- CIImage
- thread
- Swift
- docker
- AWS
- Block
- Swift 3.0
- string
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |