전체 글 (132) 썸네일형 리스트형 [UI]AVFoundation와 Timer 학습하기 # AVFoundation AvFoundation은 다양한 Apple플랫폼에사운드 및 영상 미디어의 처리, 제어, 가져오기 및 내보내기 등 광범위한 기능을 제공하는 프레임워크이다. # 주요기능 - 미디어 재생 및 편집 - 디바이스 카메라와 마이크를 이용한 영상 녹화 및 사운드 녹음 - 시스템 사운드 제어 - 문자의 음성화 # AVAudioPlayer Class - AVAudioPlayer 클래스는 파일 또는 메모리에 있는 사운드 데이터를 재생하는 기능을 제공한다. # AVAudioPlayer 주요기능 - 파일 또는 메모리에 있는 사운드 재생 - 파일 재생 시간 길이의 제한없이 사운드 재생 - 여러 개 사운드 파일 동시 재생 - 사운드의 재생 속도 제어 및 스테레오 포지셔닝 - 앞으로 감기와 뒤로 감기등의.. [UI] UIkit이란? iOS 또는 tvOS 앱용 그래픽 이벤트 기반된 사용자 인터페이스를 구성하고 관리하는 프레임워크이다. 기본적으로 앱을 만들때 필수로 필요한 하부구조를 제공한다. 인터페이스를 구현하기 위한 창 및 View아키텍쳐를 제공한다. 시스템 및 앱 간의 상호 작용을 관리하는 데 필요한 기본 실행 루프를 제공한다. 제공되는 기타 기능은 애니메이션, 문서, 그리기와 출력, 현재 장치에대한 정보, 텍스트 관리 및 표시, 검색, 접근성, 앱의 확장 , 자원 등이 있다. # 애플 문서 중요 참고 사항 - 달리 명시되지 않는 한 앱의 메인 스레드나 메인 디스패치 큐 에서만 UIKit 클래스를 사용해라. 이 제한은 특히 UIResponder에서 파생된 클래스 또는 어떤식으로든 앱의 사용자 인터페이스 조작과 관련된 클래스에 적용.. [TIL]20220104 Create Column BreakPoint 뺌 주로 코드를 구현한 후 원하는 값이 잘 나오지 않을때가 있다…(곤란하다…) 로직 어딘가 잘못 계산되고있거나 놓친부분이 있을수있다. 그럴때 보통 값을 확인하기위해 print()를 많이 사용하곤하지만 보다 적응하면 보다 간편하고 쉬운방법이 lldb이다! lldb를 사용할 때 guard문이나 if문 또는 옵셔널 체이닝 도중의 값을 확인하고 싶을 경우에는 커맨드+확인하고싶은 변수 혹은 값을 클릭하면 Create Column BreakPoint 라는 부분 값을 확인할 수 있는 브레이크 포인트를 글렌에게 질문을 하다보니 자연스레 정보를 얻었다 ㅎㅎ 유익한 정보라 공유해본다. # mac은 자소분리가 안된다 오늘 프로젝트를 하는 도중 입력한 값을 확인하려고 하는데 정말 상식 선에서 도무지 이해할 수 없는 오류가 계속나.. [Swift] Array(String())가 초기화되는 방식이 String.Element? Array(String(123)) // ["1", "2", "3"]이렇게 나오는 이유는 뭘까 …? 당연히 ["123"]값이 나올줄 알았는데…Array() 로 초기화하는 과정에서 각 요소들을 하나하나 배열로 반환한것 같았다. 그래서 찾아보았다. var numbers = Array(String(123))에 값을 넣고 변수에 option키를 눌러 타입을 자세히 확인해보았는데 [String.Element]타입에 배열이었던것이다. 아니… String은 알겠는데… 거기서 .Element는 제네릭인가… 하고 또 클릭해서보니 typealias Element = Character타입으로 지정되어있었다. 고로 String.Element는 결국 Character타입의 요소라고 볼 수있나? 아무튼 마무리를 지어보면 123을 .. [Swift] Memberwise initializer의 접근제어자 설정 기준 해석) 기본 멤버이니셜라이저는 구조체타입을 위한 것이다. 이는 구조체의 저장된 프로퍼티가 어느하나라도 private일 경우 Memberwise initialzer 자체를 private인 것으로 간주한다. 만약 어느한 프로퍼티가 filprivate이면 initialzer자체를 filprivate으로 간주한다는 것이다. 접근제어자가 별도로 설정이 되어있지않으면 기본 범위인 internal로 지정이된다. 위와 마찬가지로 만약에 멤버와이즈 이니셜라이저를 다른 모듈에서 사용하고자 한다면 public으로 선언해야한다. # struct내에서 수기로 init()을 생성한 경우와 멤버와이즈 이니셜라이저를 사용한 경우에 차이점을 확인해보자 ! 첫번째 컴파일 오류만 확인하면 되는데 잘 안보일 수 있으니 글로 확인해보자 [오.. [Swift] 옵셔널 체이닝(Optional Chaning)과 빠른종료(guard) 알아보기 주의 : 영문서 번역 중 오역이 있을 수 있으며 정확하지않는 정보가 있을 수 있습니다. 옵셔널체이닝과 빠른종료 - 옵셔널 체이닝 - 빠른종료 - 포인트 정리 - 궁금증 # 옵셔널체이닝 값이 중첩된 형태를 띄어야 제몫을 발휘하는 친구이며 옵셔널을 이해하지 못한다면 스위프트의 절반도 이해하지 못한것과 마찬가지이다. 옵셔널 체이닝이 없다면 옵셔널은 정말로 귀찮고 또 귀찮은 존재일 수 밖에 없다. 이번 장에서는 옵셔널을 좀더 편리하게 사용할 수 있는 옵셔널 체이닝과 빠른 종료 문법에 대해 알아보자 해석) 옵셔널 체이닝이란 현재 값이 nil일 수 있수도 있는 옵셔널에 대한 메서드나 프로퍼티와 서브스크립트를 캐묻거나 호출하기위한 방식이다. 만일 옵셔널타입에 값이 포함되 있으면 프로퍼티나 메서드 혹은 서브스크립트를 .. [Git] 로컬과 원격저장소를 연결하는 방법 나는 지금 프로그래머스 문제를 풀어 내 로컬에 저장되어있는걸 나의 깃허브 레퍼지토리 저장소에 push를 하고싶은 상황이다. 그에 적합한 로컬저장소와 원격저장소를 연결하는 명령어가 있어 사용하면 될듯하다. 브랜치이름은 KNumber이다. $ git remote add origin - 원격저장소 url을 등록함으로써 나의 로컬저장소와 원격저장소 연결하였다. $ git remote -v - 원격저장소에 등록됬을경우 url을 확인해볼 수 있다. fetch와 push 두개가 보인다. $ git push 파일들을 넣어준다. [Swift] 함수의 반환값이 사용되지 않을 경우 경고 해결방법 #경고발생 Result of call to '함수명' is unused => 즉, 함수의 반환값을 사용하지 않고 있다는 것이다. 아래 사진을 보면 경고창을 볼 수 있다. # 해결방법 반환값을 사용하지 않을 수 있는 함수명 앞에 @discardableResult 를 붙여줌으로써 컴파일러에게 반환값을 사용하지 않을 수 있다고 미리 알려주는 것이다. 사실 크게 상관없다고 생각할 수 있지만.... 굉장히 찝찝하기때문에 붙여주는게 훨씬더 보기 좋다. 이후에 오류가 사라진것을 볼 수 있다. [Git] 원격저장소와 로컬저장소의 커밋이 다를경우 # 문제 발생의 원인 Draw.io를 깃허브와 연동해서 FlowChart를 만들고 draw.io에서 바로커밋을 한 상태이다. 그런데인지를 못한상태에서 나의 로컬에서 새로운 커밋을 만들고 push를 하여 오류가 난상태이다. 오류는 아래와 같다. # 오류발생전 커밋 ➜ swift-starter-week2 git:(2_Quokkaaa) ✗ git add . ➜ swift-starter-week2 git:(2_Quokkaaa) ✗ git commit [2_Quokkaaa 31d27a1] feat: generateLotterryNumbers 함수 구현 2 files changed, 12 insertions(+), 2 deletions(-) # 오류 발생 ➜ swift-starter-week2 git:(2_Quok.. [Swift] Closure 알아보기 1부(Feat. 함수타입?) 주의 : 영문서 번역 중 오역이 있을 수 있으며 정확하지않는 정보가 있을 수 있습니다. 카테고리 - 클로저 - 기본클로저 - 후행클로저 - 클로저 표현 간소화 - 문맥을 이용한 타입유추 - 단축인자이름 - 암시적 반환 표현 - 연산자 함수 - 값 획득 - 포인트정리 - 궁금증 클로저란 => 여러곳에 사용될 수 있는 자체 기능블록이 포함된것이다. 스위프트에서 함수평 프로그래밍 패러다임을 접할 때 첫걸음으로 꼭 알아야할 녀석이 바로 클로저이다. 클로저를 잘 이해해야 스위프트의 함수형 프로그래밍 패러다임 스타일을 좀 더 명확하게 이해할 수 있다. 클로저와 제네릭, 프로토콜, 모나드등이 결합해서 스위프트는 훨씬 강력한 언어가 되었습니다. 스위프트의 클로저는 C언어나 Objective-C의 블록 또는 다른 프로그.. 이전 1 ··· 7 8 9 10 11 12 13 14 다음