본문 바로가기

반응형

개발

(93)
[Swift] Interface @IBDesignable @IBDesignable class button: UIButton { .... } draw 하는 것을 코드로 작성해서 스토리보드에 보이지 않는 것이 있다면 이 것을 작성해주면 좋다. 위와 같이 적어주면 인터페이스 화면에 보이게 할 수 있다. @IBInspectable @IBInspectable var checked: Bool = false { didSet { updateImage() } } 스토리보드의 오른 쪽의 네비게이터에는 여러 변수를 조정할 수 있다. 이 코드를 적어주면 인터페이스 화면 옆에 변수를 띄울 수 있어 조작에 편리하다. 인터페이스 빌더 화면에 이미지를 보이고 싶다면 아래와 같이 작성하자. if let cardImage = UIImage(named: "", in: ..
[Swift] NSAttributedString NSAttributedString은 문자열의 모든 문자가 각각 딕셔너리를 가지고 있는 문자열이다. 딕셔너리의 여러 키오와 값들이 화면에 나타난다. 각 문자가 가질 수 있는 딕셔너리는 값은 키의 타입과 관련이 있다. 대체로 여러 문자의 범위 내에서 하나의 딕셔너리를 사용한다. 속성 문자열로 여러 폰트나 문자의 색깔 등을 가지면 UI 라벨의 글자를 설정하거나 UI버튼의 타이틀을 설정할 수 있다. 앞에 NS가 붙어있는 것은Objective-C의 API가 스위프트에 있는 것으로 약간의 타협이 필요하다. 이 타입은 유추하게 해서는 안된다. 스위프트는 해당하는 값이 어떤 것인지 몰라서 딕셔너리 값을 알 수 없다. NSAttributedString은 class이기 때문에 var을 이용해 가변 변수로 만들 수는 없다...
[Swift] 문자열 색인 Character - 사람이 문자로 인식하는 것을 나타낸다. - 문자열은 순차가 아니다. 문자로 형성된 것이 아닌 유니코드로 이루어진 거다. 유니코드란 바이트 단위의 데이터로 거의 모든 언어를 나타낼 수 있는 것이다. 문자열을 정수로 색인하지 않고 대신 특수한 타입으로 (String.Index) 문자열을 다룬다 문자열은 문자의 조합이고 모두 collection으로부터 온 것. (collection은 수열로 이루어짐!) let pizzaJoint = "Cafe pesto" let firstCharacterIndex = pizzaJoint.startIndex let fourthCharacterIndex = pizzaJoint.index(firstCharacterIndex, offsetBy: 3) let fo..
[Swift] Protocol 알아보기 참고! Mutating = 객체를 바꾸는 함수 get, set = get은 읽기 전용, set은 쓰기 전용 ㄴ 단 set은 var로 선언된 것에만 가능하다. ㄴ set이 있다면 자동으로 mutating이 들어가있다고 볼 수 있다. 구조체는 값 타입이다. 힙 내부에 존재하지 않아서 구조체를 전달할 때 사본이 복사된다. 하지만 스위프트에선 CopyAndWrite 기능으로 내용이 변경되었을 때만 복사해서 쓴다. Protocol - 프로토콜은 언제 어디서 사용하고 왜 사용하는지 등의 용도가 굉장히 중요하다 - 프로토콜은 API에서 원하는 것을 불러오는 방식이다. 구현이라기 보다 변수와 함수의 리스트다. - API를 매우 유연하게 만든다. 구별 가능함에 대한 권한을 주는데 유용하다. - 변수와 함수 선언만 하기 ..
알고리즘 공부를 하며 알고리즘은 효율적인 코딩이다. 알고리즘의 큰 틀 안에는 크게 자료구조와 시간복잡도가 있다. 시간복잡도를 간단하게 설명하자면, For문과 While 같은 반복문의 사용 빈도를 보고 연산 시간을 추측하는 방법이다. 자료구조는 데이터를 저장, 조작하는 방법을 나열한 것이고 아래와 같다. 알고리즘의 큰 뿌리인 자료구조이니 더 자세히 보고가자. 알고리즘을 공부하기 위한 단계 그렇다면 많고 많은 알고리즘 중에 어느 것부터 시작해야할까? 알고리즘의 기본은 자료구조를 이해하고 있느냐부터 시작한다. 위 그림을 보고 헷갈리거나 잘 모르는 것이 있다면 우선 자료구조의 개념을 살펴보도록 하자. 자료구조에 준비가 되었다면 아래의 순으로 공부를 시작한다. 기본적인 알고리즘 스택, 큐 재귀 정렬 중급 알고리즘 그리디 구현 DFS/..
[Swift] 프로토콜 지향 프로그래밍 Swift에서 프로토콜 중심 프로그래밍(POP)하기 Protocol Oriented Programming in Swift라는 주제로 조성규님이 발표해 주셨습니다. 요즘 뜨고있는 프로토콜 중심 프로그래밍에 대해 알아보고 장단점과 실제로 프로젝트에 어떻게 적용해야 할지 쉽게 설 academy.realm.io Swift는 프로토콜 지향 프로그래밍 언어로 유연하고 확장성 있는 패러다임이 발전한 언어다. 많이 들어보았던 프로토콜 지향 프로그래밍 언어(POP) Swift의 프로토콜은 Objective-C에서의 역할이었던 청사진에서 구현까지 가능해진 것을 알고 있다 그러나 왜 이러한 protocol을 만들게 되었을까? 상속의 한계 서로 다른 클래스에서 상속받은 클래스는 동일한 기능을 구현하기 위해 중복 코드 발생 -..
[알고리즘] 공부 순서 알고리즘 공부 순서 1. 문자열, 구현, 정렬 2. 그리디, 해시, b/dps 3. 이분 탐색, 큐, 그래프 4. 다이나믹 프로그래밍 그리디 알고리즘 (탐욕 알고리즘) 미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법. 그리디 알고리즘은 당장의 선택이 중요하기에 해당 해결책이 최선이라는 것을 보장하지 않는다. 해시 알고리즘 (해시 테이블) 어떤 길이의 데이터를 입력해도 정해진 길의의 결과를 주는 함수. 결과값이 중복될 가능성이 거의 없고 입력값을 알 수 없으며 결과값으로 입력값을 찾을 수 없다. 덕분에 블록체인 등 암호화에 주로 이용된다. 메시지를 256Bits 의 코드로 바꾸어주는 알고리즘.
[GIT] 터미널(Command) 명령어 GIT 추적 지우기 DS_Store 추적 지우기 git rm —cached -f *.DS_Store find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch UserInterfaceState.xcuserstate 추적 지우기 git rm --cache */UserInterfaceState.xcuserstate GIT 프로젝트 연결하기 git remote set-url origin 깃주소 GIT 커밋 취소 가장 최근의 커밋을 취소하기 git reset HEAD^ 특정 commit id로 되돌리기 git reset --hard commitID // ex.) git reset --hard e35871e 원격 저장소에 강제 push 하기 git ..

반응형