일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Regex
- 깃허브
- 플로우차트
- 순서도
- 계산기
- 깃
- GitvsGithub
- xcode
- Git과 Github차이점
- OS
- JSONSerialization
- 정규표현식
- swift
- 스위프트
- PushNotification
- ios
- git사용법
- 백준
- 흐름도
- UIViewController
- github란
- APNS
- github
- git이란
- 플로우 차트
- 정규식
- flowchart
- git
- 애플
- flow chart
- Today
- Total
목록Swift (14)
Diana의 iOS 개발일기
회사에서 회원가입 기능을 만들면서 정규표현식을 사용하고 있는데요. 다 됫다! 싶으면 튀어나오는 예외케이스 때문에 여간 골머리를 썪고있는게 아닙니다. 확실히 이해 없이 급하게 가져다 쓰니까 허점이 많은거 같더라구요. 고로 제대로 사용하고 싶기도 하고 미래에 정규식과 다시 마주할 제 자신의 당혹감을 줄여주고자 정리해보려고 합니다. 개념정리! 시작합니다! 정규표현식(Regex)이란? 정규표현식, 즉 정규식은 패턴을 표현하기 위해서 생겨난 언어라고 합니다. 지금 제 경우에는 비밀번호를 체크할 때 연속된 숫자가 4개 이상 존재할 경우 불가능! 을 띄워주고 있는데요, 정규표현식을 사용하지 않으면 "0000", "1111", "2222",,,,"9999"를 모두 체크해주어야겠죠? 하지만 정규표현식을 사용하면 (\\d..
스위프트로 알고리즘을 공부하겠다고 Data Structures & Algorithms in swift 란 책을 처음 딱 펼친 뒤 당황했던게, 이전엔 본적이 없는 CustomStringConvertible란 프로토콜을 만나게 되었다. 이건 뭐하는 프로토콜일까? 공식 문서를 살펴보면 CustomStringConvertible은 텍스트 표현을 커스텀할 수 있는 타입이란다. 애플 개발자 사이트: https://developer.apple.com/documentation/swift/customstringconvertible 해당 프로토콜은 인스턴스를 문자열(string)로 변환할 때 그들만의 표현을 제공해주며 String(describing: ) 이니셜라이저와 print(_:)함수를 사용하여 표현한다. 예를 들어..
1. JSONSerialization 개인적으로 특정 서버에 HTTPRequest를 사용하여 로그인하여 그 계정에 해당하는 데이터를 HTTPResponse를 사용하여받아올 일이 생겼는데요, 이때 데이터의 Request와 Response를 JSON 형태로 하게 되었고, JSONSerialization이라는 클래스를 사용하며 용도가 궁금해졌습니다. 정의를 검색해보니 아래와 같이 나왔고 이를 간단히 해석해보면, JSONSerialization은 주어진 object가 JSON 형태의 데이터로 변경이 가능한지를 알려주며 이를 위해서는 몇가지 속성이 필요하다고 하네요. 그 중 제게 필요한 정보는 모든 object들은 NSString, NSNumber, NSArray, NSDIctionary 또는 NSNull 형태여..
1. NSExpression 애플 공식 문서: An expression for use in a comparison predicate. 해당 함수는 계산기 등의 연산에 자주 사용되며 문자열을 받아 계산식으로 자동 변환해주는 함수입니다. class NSExpression : NSObject checkedWorkingsForPercent에 "6*5-10"의 문자열이 들어갈 경우 expression의 결과로는 (6*5)-10 이 출력됩니다. 2. replacingOccurrences(of:with:) 애플 공식문서 : Returns a new string in which all occurrences of a target string in the receiver are replaced by another give..
스위프트에서 클래스는 상속(Inheritance)이 가능합니다. 상속은 객체지향형 프로그래밍에서 꽤나 유용한 기능이죠. 이때 타 클래스로부터 상속을 받는 클래스를 해당 클래스의 자식클래스(Child-class)라고 하며 반대로 자식클래스에게 본인의 특성을 물려준 클래스를 부모클래스(Parents-class)라고 합니다. 상속을 사용하면 자식 클래스는 부모 클래스에 정의된 메서드, 프로퍼티, 서브스크립트 등의 요소들을 사용할 수 있게 되고 자신만의 내용으로 재정의(Override)가 가능하게 됩니다. 또, 원래는 연산프로퍼티가 구현된 클래스에서는 프로퍼티 감시자를 구현할 수 없지만 부모 클래스에서 프로퍼티를 상속받은 자식클래스에서는 연산 프로퍼티나 저장 프로퍼티에 대한 프로퍼티 감시자의 구현이 가능하게 됩..
서브스크립트는 인스턴스 이름 뒤에 값을 대괄호로 감싸 표현해줌으로써 값에 쉽게 접근하고 설정할 수 있습니다. 주로 각 타입의 구현부에 위치하며 매개변수로 다양한 값을 가질 수 있지만 입력 매개변수는 받지 못하는 등 쉬운 듯 하지만 꽤나 섬세한 문법을 가지고 있으므로 주의를 기울일 필요가 있습니다. [서브스크립트 - Subscript] 서브스크립트는 컬렉션, 리스트, 시퀀스 등의 타입의 요소에 인덱스를 통해 접근하는 단축 문법입니다. 인덱스로 접근한다. 즉 우리가 평범하게 Array에 Array[Index], Dictionary에 Dictionary[Index]로 접근하던 것이 모두 서브스크립트입니다. 서브스크립트는 subscript 키워드를 사용하여 정의하며 인스턴스 메서드와 비슷하게 매개변수의 개수, ..
모나드는 디자인 패턴 중 하나로 스위프트의 함수형 프로그래밍에 대한 이해를 위해서 모나드의 개념을 알아두면 꽤나 도움이 됩니다. 개인적으로는 굉장히 헷갈렸던 부분이라 설명에 오류가 있을 수 있습니다. [모나드 - Monad] 모나드는 함수와 더불어 순서가 있는 연산을 처리할 때 자주 활용되는 디자인패턴 혹은 자료구조입니다. 프로그래밍에서 모나드는 아래 세 가지 조건을 모두 충족시켜야 합니다. 타입을 인자로 받는 타입(특정 타입의 값을 포장) 특정 타입의 값을 포장한 것을 반환하는 함수(메서드)가 존재 포장된 값을 변환하여 같은 형태로 포장하는 함수(메서드)가 존재 1. 컨텍스트(Context) 컨텍스트는 콘텐츠(Contents)를 담은 그 무언가 라는 의미입니다. 하나의 상자 정도로 이해하면 쉬울 듯 합..
맵과 필터 그리고 리듀스는 함수형 프로그래밍인 스위프트의 특징을 고스란히 가지고 있어 굉장히 재밌고 매력적인 고차함수들입니다. 이때 고차함수란 함수를 매개변수로 가지는 함수를 뜻하며 클로저(Closure)와 제네릭(Generic) 등의 중요 개념과 함께 사용되므로 해당 개념들에 대한 선행지식를 요구합니다. [맵 - Map] 맵은 자신을 호출할 때 매개변수로 전달된 함수를 실행하여 그 결과를 다시 반환해주는 함수입니다. 약간 컨테이너 타입을 위한 간단한 산술 연산자와 비슷하다고 생각하시면 좋을 듯 합니다. 맵은 map 키워드를 사용하며 배열, 딕셔너리, 세트, 옵셔널 등에서 사용이 가능합니다. 맵은 사용하면 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 ..