구글과 나무위키를 타고타고 '모나드'를 검색해보면.. 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] (이런식으로) 그리고 이 글 쓰게 한 예..
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..
/ 를 쓴 이유는 코드를 어떻게 짜느냐에 따라 그냥 다 되니까 ~ = data passing using protocol = access variable in another class 우선 내가 작성한 예시는 이렇게 ViewController 위에 얹혀있는 Custom Button 버튼을 누르면 그 버튼 클래스의 delegate 를 통해 ViewController에서 특정 작업을 수행하는 예시이다. 터치 이벤트는 ViewController가 아닌 CustomButton 클래스에 구현이 되어있는 상태로 핵심은 Custom Button 이라는 클래스에서의 동작이 ViewController 라는 다른 클래스에서 수행된다는 점이다 !! 이렇게 수행되도록 하는 방법에는 여러가지가 있는데 그 중에 내가 자주 사용하는..
부제 : 어제 읽었는데 오늘 아침되니 까먹어서 결국 정리하는 글 "스위프트에서 Static은 '타입' 프로퍼티 혹은 '타입' 함수를 의미한다. 'static'과 'class' 프로퍼티/함수와의 차이점은 'class' 프로퍼티/함수는 오버라이딩이 가능하지만, 'static'은 오버라이딩이 불가능하다는 점이다." 이게 구글에 쳤을 때 나오는 대표 답변이고, 이제 여기 나온 답변을 하나씩 뜯어보자! 1. '타입(Type) 프로퍼티/함수' 가 뭔데? 혹시 프로퍼티가 뭔지 몰라.. 프로퍼티(property)가 뭔지 구글에 검색해보면 .. 이런 답변이 나오는데 사실 정확히 어떤 단어로 정의하기는 힘든 것 같다. 그냥 "thing" .. 정도가 좋겠다. 우선 이해를 돕기위해 이하는 모두 메서드로 설명해보겠다! 1-1..
우선 본 글은 - MVC(Model-View-Controller)와 MVVM(Model-View-ViewModel)에 대해 .. 언뜻이라도 들어본 분들 - 그치만 잘 이해가 가지 않은 분들 - 무엇보다 iOS 개발을 (공부)하시는 분들 이 읽었을 때 가장 효과가 나타날 것 같은 글입니다 제가 잘못 알고 있는게 있다면 꼭 지적해주세요 ㅠㅠ!! 참고자료/출처이자 먼저 읽으면 좋은 글들 (전반적인 이해에 가장 큰 도움이 되었음) [Introduction to MVVM] www.objc.io/issues/13-architecture/mvvm/ Introduction to MVVM · objc.io I got my first iOS job at 500px in 2011. I had been doing iOS co..
- Total
- Today
- Yesterday
- CaseIterable
- 부가데이터
- 스낵바설정
- 프래그먼트매니저
- 인플레이터
- 데이터
- 터치리스너
- 어댑터
- 카카오톡열기
- 페이저타이틀스트립
- prepareforreuse
- 상태드로어블
- allcases
- subscript
- 다이얼연결
- objc
- 제스처디텍터
- swift
- 액션바
- 전화걸기연결
- 안드로이드
- 표현패턴
- 쉐이프드로어블
- ios
- 비트맵버튼
- Objective-C
- 뷰페이저
- 프래그먼트
- 알림대화상자
- 전화연결하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |