SwiftUI의 동작방식 : 선언형(Declarative) 프레임워크 <- 이게 진짜로 의미하는 것은 무엇일까? 네비게이션 링크 기능을 담은 버튼 구현을 학습하다가 알게 된 점..버튼 안에 직접 네비게이션 링크를 넣는 게 아니라, bool 변수를 하나 만들어놓고 버튼을 누르면 이 변수를 true 로 만들어서 보내게 한다. 버튼 안에 링크를 넣는게 불가능한 건 아닌데, 아무튼 오류가 많으니 추천하는 방법이 아니고. 그렇다면 자연스럽게 드는 생각. '그럼 bool 변수가 변하는지 아닌지 계속 검사하는거 아닌가? 이게 더 비효율적인거 아닌가? '이에 대해서 알아보니, 스위프트는 UIKit과 달리 선언형 프레임워크라고 한다 ! 이게 의미하는 바는 다음과 같다. @state @binding 등 모두 값이 바뀔 때만 화면을 갱신한다. 즉, SwiftUI가 내부적으로 값을 감지(Observe) 하는 시스템을 가지고 있는 것!..
썸네일 무시해도 안전한 로그들 : 시뮬레이터 문제
Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem. Form 이나 List 에 DatePicker 혹은 TextField를 넣었을 때 레이아웃 때문에 발생하는 문제! TextField의 자리가 충분한지, DatePicker의 자리가 충돌하지는 않았는지 확인. https://youjean.tistory.com/6 Xcode textfield에서 키보드가 올라오지 않을 때Xcode textfield에서 키보드가 나타나지 않고 타자로만 칠 수 있을때 당황 스러울 수 있다. 하지만 command + 화살표 위 key(▲) + k 를 눌러 간단히 해결할 수 있다.youjean.tistory.com
4 레이어 : Foundation / UIKit 정리 4 Layer Cocoa touch Framwork -UIKit-AddressBookUI-EventKitUi...Media Framework-AssetLibrary...CoreServiceFramework-Foundation-Webkit...Core Os Framework-CoreBluetooth... 개념만 정리해봄. 굳이 외울 필요는 x 필요할 때 import 해서 쓰면 됨
[swift 문법] 클래스, 열거형, 클로저 보호된 글입니다.
[swift 문법] 구조체 보호된 글입니다.
[swift 문법] 반복문, 옵셔널 보호된 글입니다.
[swift 문법] 함수 기본 ~ 조건문 -func func 함수이름 (매개1이름: 매개1 타입, 매개2이름: 타입 ...) -> 반환타입/void/생략 { return}func hello() -> Void { }-매개변수 기본값은 목록 중 뒷쪽에 // 매개변수 기본값func greeting (friend: String, me:String = "yagom"){ print("Hello \(friend)! I'm \(me)")}greeting(friend: "min")greeting(friend: "min", me: "eric")- 전달인자 레이블 : 전달인자 레이블은 함수를 호출할 때 매개변수의 역할을 조금 더 명확하게 하거나 함수 사용자의 입장에서 표현하고자 할 때 사용func greeting(to friend: Stirng, from me: ..
[swift 문법] 1단원 스위프트 기초 consol log-print-dump-문자열 보간법 : 프로그램 실행 중 문자열 중간에 변수 또는 상수의 실질적인 값을 표현import swift let age : Int = 19print("안녕하세요! 저는 \(age)살 입니다!") //19print("안녕하세요! 저는 \(age+5)살 입니다!") //24class Person { var name : Stirng = "me" var age : Int = 20 }let people : Person = Person()print (people) //데이터의 주소dump (people) //주소와 내용 상수와 변수-let-varlet 이름: 타입 = 값var 이름: 타입 = 값//띄어쓰기를 신경쓸 것!타입이 명확하다면 생략도 가능나중에 할당하는 변..
썸네일 [스위프트 기초] 13장 (2) 오디오 재생 및 녹음 import UIKitimport AVFoundationclass ViewController: UIViewController, AVAudioPlayerDelegate, AVAudioRecorderDelegate { var audioPlayer : AVAudioPlayer! var audioFile : URL! let MAX_VOLUME : Float = 10.0 var progressTimer : Timer! let timePlayerSelector: Selector = #selector(ViewController.updatePlayTime) @IBOutlet var pvProgressPlay: UIProgressView! @IBOutlet var lb..
썸네일 [스위프트 기초] 13장 오디오 import UIKitimport AVFoundationclass ViewController: UIViewController, AVAudioPlayerDelegate { var audioPlayer : AVAudioPlayer! var audioFile : URL! let MAX_VOLUME : Float = 10.0 var progressTimer : Timer! let timePlayerSelector: Selector = #selector(ViewController.updatePlayTime) @IBOutlet var pvProgressPlay: UIProgressView! @IBOutlet var lblCurrentTime: UILabel! ..
do - try - catch 문 보호된 글입니다.