구글과 나무위키를 타고타고 '모나드'를 검색해보면.. https://namu.wiki/w/Haskell/%EB%AA%A8%EB%82%98%EB%93%9C Haskell/모나드 - 나무위키 타입 생성자 f에 대해 적절한 함수 fmap :: (a -> b) -> f a -> f b이 존재하여 다음 성질들을 만족할 때, f를 함자(Functor)라고 한다. 항등함수 id :: a -> a에 대해 fmap id :: f a -> f a도 항등함수다.모든 함수 f namu.wiki 뭐.. 뭐라고요 ? 일단 모나드란. 여러 영역에서 다양한 뜻을 가지고 있는.. 아무도, 이거다!라고 정의할 수는 없지만. 내가 앞으로 설명할 3가지 조건들 중 하나라도(?) 갖추고 있는 것을 "모나드"라고 할 수 있다. 고는 말할 수 ..
//제네릭을 사용하기 위해 프로토콜 정의 protocol Personalize { var name: String { get } var age: Int { get } } struct Person: Personalize { var name: String var age: Int } let star: Person = Person(name: "Star", age: 99) //제네릭을 사용하여 패턴 연산자를 정의 func ~= (pattern: String, value: T) -> Bool { return pattern == value.name } func ~= (pattern: T, value: T) -> Bool { return pattern.name == value.name && pattern.age == v..
배열이 아닌 struct에서 []로 접근했을 때 동작(?)하길래 훑어본 subscript.. 우선 subscript 부터 알아보자 https://jusung.gitbook.io/the-swift-language-guide/language-guide/12-subscripts 서브스크립트 (Subscripts) - The Swift Language Guide (한국어) 클래스, 구조체 그리고 열거형에서 스크립트를 정의해 사용할 수 있습니다. 서브스크립트란 콜렉션, 리스트, 시퀀스 등 집합의 특정 멤버 엘리먼트에 간단하게 접근할 수 있는 문법입니다. 서브 jusung.gitbook.io 다 알아보았습니다 저는 여기서 몇 개 발췌하고 배열이 아닌 struct에 []로 접근했을 때, 동작을 알아보겠습니다. 서브스..
1. CaseIterable의 allCases를 초간단하게 보고 2. 거기서 reduce와 map의 조합을 볼 생각 Swift의 열거형은 enum 이라는 키워드로 선언할 수 있다. 그리고 이 enum은 CaseIterable 프로토콜을 채택할 수 있는데, 그러면 allCases라는 이름의 타입 프로퍼티를 통해 enum의 모든 케이스의 컬렉션을 생성해준다. enum School: CaseIterable { case elementary case middle case high } let allCases: [School] = School.allCases print(allCases) // [School.elementary, School.middle, School.high] (이런식으로) 그리고 이 글 쓰게 한 예..
Item 47: Familiarize Yourself with the System Frameworks Item 48: Prefer Block Enumeration to for Loops - Fast Enumeration // Array NSArray *anArray = /* ... */; for (id object in anArray) { // Do something with 'object' } // Dictionary NSDictionary *aDictionary = /* ... */; for (id key in aDictionary) { id value = aDictionary[key]; // Do something with 'key' and 'value' } // Set NSSet *aSet = /..
GCD is the associated technology and provides an abstraction to threading, based on so-called dispatch queues. Blocks can be enqueued on these queues, and GCD handles all scheduling for you. It creates, reuses, and destroys background threads as it sees fit, based on system resources, to process each queue. Moreover, GCD provides easy-to-use solutions to common programming tasks, such as thread-..
Item 29: Understand Reference Counting NSMutableArray *array = [[NSMutableArray alloc] init]; NSNumber *number = [[NSNumber alloc] initWithInt:1337]; [array addObject:number]; [number release]; // do something with 'array' [array release]; As explained previously, this code won’t compile under ARC, owing to the explicit calls to release. In Objective-C, a call to alloc will result in the return ..
Item 23: Use Delegate and Data Source Protocols for Interobject Communication @protocol EOCNetworkFetcherDelegate - (void)networkFetcher:(EOCNetworkFetcher*)fetcher didReceiveData:(NSData*)data; - (void)networkFetcher:(EOCNetworkFetcher*)fetcher didFailWithError:(NSError*)error; @end A delegate protocol is usually named as the class name followed by the word delegate, using camel casing for the ..
prepareForReuse()는 말그대로 테이블뷰에서 셀이 재사용되기 전에 불려서 준비시키는 함수다. 그러나 꼭 써야하는 함수는 아님! 근데 지금까지 계속 delegate 안에 있는 tableView(_:cellForRowAt:)에서 초기화를 계속 해줬는데 왜 굳이 똑같은 행동을 하는 함수를 한 번 더 써야하나? 하는게 나의 궁금증이었음. -> 그럼 공식문서를 보자 Discussion을 읽어보면 If a UITableViewCell object has a reuse identifier, the table view invokes this method just before returning the object from the UITableView method dequeueReusableCell(withId..
Item 15: Use Prefix Names to Avoid Namespace Clashes Item 16: Have a Designated Initializer Item 17: Implement the description Method - (NSString*)description { return [NSString stringWithFormat:@"", [self class], self, _firstName, _lastName]; } If this were to be used, the output for an object of type EOCPerson would now look like the following: EOCPerson *person = [[EOCPerson alloc] initWithFi..
- Total
- Today
- Yesterday
- 페이저타이틀스트립
- 제스처디텍터
- subscript
- 어댑터
- 상태드로어블
- 뷰페이저
- 전화연결하기
- 다이얼연결
- allcases
- Objective-C
- 액션바
- 부가데이터
- objc
- 터치리스너
- 카카오톡열기
- 프래그먼트매니저
- 전화걸기연결
- 알림대화상자
- 안드로이드
- swift
- 프래그먼트
- 데이터
- 비트맵버튼
- 인플레이터
- 표현패턴
- 쉐이프드로어블
- 스낵바설정
- CaseIterable
- ios
- prepareforreuse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |