일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 계산기
- OS
- ios
- UIViewController
- GitvsGithub
- 깃허브
- 정규표현식
- 깃
- github
- 순서도
- github란
- PushNotification
- swift
- 플로우차트
- 플로우 차트
- Git과 Github차이점
- 애플
- 정규식
- xcode
- APNS
- 백준
- flow chart
- git사용법
- Regex
- 스위프트
- git이란
- JSONSerialization
- 흐름도
- flowchart
- git
- Today
- Total
목록스위프트 (18)
Diana의 iOS 개발일기
스위프트에서 클래스는 상속(Inheritance)이 가능합니다. 상속은 객체지향형 프로그래밍에서 꽤나 유용한 기능이죠. 이때 타 클래스로부터 상속을 받는 클래스를 해당 클래스의 자식클래스(Child-class)라고 하며 반대로 자식클래스에게 본인의 특성을 물려준 클래스를 부모클래스(Parents-class)라고 합니다. 상속을 사용하면 자식 클래스는 부모 클래스에 정의된 메서드, 프로퍼티, 서브스크립트 등의 요소들을 사용할 수 있게 되고 자신만의 내용으로 재정의(Override)가 가능하게 됩니다. 또, 원래는 연산프로퍼티가 구현된 클래스에서는 프로퍼티 감시자를 구현할 수 없지만 부모 클래스에서 프로퍼티를 상속받은 자식클래스에서는 연산 프로퍼티나 저장 프로퍼티에 대한 프로퍼티 감시자의 구현이 가능하게 됩..
2739번 import Foundation let num: Int = Int(readLine()!)! for var multi in 1...9 { print("\(num) * \(multi) = \(num * multi)") } 2741번 import Foundation let num = Int(readLine()!)! for var pNum in 1...num { print(pNum) } 10871번 import Foundation var num = (readLine() ?? "").components(separatedBy: " ") var writtenArr = (readLine() ?? "").components(separatedBy: " ") var result = writtenArr.filter..
1330번 import Foundation let test = readLine()!.components(separatedBy: " ") if Int(test[0])! > Int(test[1])!{ print(">") } else if Int(test[0])! < Int(test[1])!{ print("
1000번 import Foundation var testArr: [String] var test = readLine()! testArr = test.components(separatedBy: " ") print(Int(testArr[0])! + Int(testArr[1])!) 스위프트에서 형변환 형식은 "변환하고자하는 형(대상)"임에 유의하자. 아래는 다른 분의 풀이. print((readLine()?.split(separator: " ").map { Int($0)! }.reduce(0, +))!) 1001번 import Foundation var test = readLine()! var testArr: [String] = test.components(separatedBy: " ") print(Int(..
모나드는 디자인 패턴 중 하나로 스위프트의 함수형 프로그래밍에 대한 이해를 위해서 모나드의 개념을 알아두면 꽤나 도움이 됩니다. 개인적으로는 굉장히 헷갈렸던 부분이라 설명에 오류가 있을 수 있습니다. [모나드 - Monad] 모나드는 함수와 더불어 순서가 있는 연산을 처리할 때 자주 활용되는 디자인패턴 혹은 자료구조입니다. 프로그래밍에서 모나드는 아래 세 가지 조건을 모두 충족시켜야 합니다. 타입을 인자로 받는 타입(특정 타입의 값을 포장) 특정 타입의 값을 포장한 것을 반환하는 함수(메서드)가 존재 포장된 값을 변환하여 같은 형태로 포장하는 함수(메서드)가 존재 1. 컨텍스트(Context) 컨텍스트는 콘텐츠(Contents)를 담은 그 무언가 라는 의미입니다. 하나의 상자 정도로 이해하면 쉬울 듯 합..
클로저는 스위프트에서 상당히 중요한 내용임에도 불구하고 상당히 어렵고 사용이 난해하기로 유명합니다. 어렵고 난해하다? 저는 오히려 난해하고 또 난해하다 라고 표현하고 싶습니다. 뭔놈의 표현형식이 그리 많은지... 쉬운 것도 물논 아ㄴ... 각설하고 클로저에 대해 알아보도록 하겠습니다. [클로저(Closure)] 스위프트의 클로저는 변수나 상수가 선언된 위치에서 참조(Reference)를 획득(Capture)하고 저장할 수 있습니다. 참조를 획득한다? 이게 무슨말일까요? 다시 말해 클로저는 변수와 상수가 메모리에 있던 없던 간에 자신의 내부에서 변수와 상수 값을 참조(Refer)하고 수정할 수 있다는 의미입니다. 이러한 클로저에는 아래와 같이 세 가지 형태가 있습니다. 전역함수의 형태: 이름이 있으면서 어..
스위프트는 많은 고급 언어들과 같이 객체지향 프로그래밍 패러다임을 채택하고 있습니다. 객체지향 프로그래밍은 은닉화, 캡슐화, 추상화, 다형성, 상속성 의 5가지 특징을 가지고 있는데 이 중 은닉화를 이해하고 편하게 사용하기 위해서는 핵심기능인 접근제어(Access Control)에 대해 알아놓을 필요가 있습니다. [접근제어(Access Control)] 은닉화(Information Hidding)는 코드의 상세내용을 숨김으로써 코드의 불필요한 외부 노출을 막아주는 매우 중요한 기능입니다. 스위프트에서 이러한 중요 기능인 은닉화를 구현하기 위해서는 접근제어를 통해 외부에서의 접근을 제한하여야 하는데 이는 모듈과 소스파일을 기반으로 설계되었습니다. 이때 모듈(Module)은 코드들의 묶음으로 여담이지만 운영..
인스턴스는 메모리와 직접적으로 연관이 있다보니 수 많은 언어들에서 중요하게 다뤄집니다. 스위프트 또한 메서드, 프로퍼티 등을 사용하기 위해서는 인스턴스 생성이 거의 필수로 이루어지고 메모리의 낭비를 막기 위해서는 생성된 인스턴스를 알맞게 소멸시켜줄 수 있어야 합니다. 이번 내용은 이니셜라이저를 통한 인스턴스 생성, 초기화 등을 통한 인스턴스을 다루고 있습니다. [이니셜라이저(Initializer)] 1. 초기화(initialize) 구조체, 클래스 그리고 열거형 등은 생성한 뒤 인스턴스를 사용하기 위해서는 프로퍼티 값들을 초기화 해주어야 합니다. 초기화 방법에는 두가지가 있는데 하나는 저장 프로퍼티 생성과 동시에 초기화를 해주는 방법이고 다른 하나는 아래와 같이 init 키워드를 사용하여 이니셜라이저를 ..