본문 바로가기

IT/Swift5

(6)
[swiftui] 네비게이션 뷰에 액션추가하기 네비이션을 사용할 때 버튼에 action 기능이 필요할 때가 있다. 그럴 땐 네비게이션 링크에 .simultaneousGesture(TapGesture().onEnded{ ## 데이터를 전달할 함수 }) 이것만 붙여주면 된다!! 그러면 네비게이션 링크가 이동할 때, 버튼의 액션처럼 트리거가 되어 데이터를 전달할 수 있다. 참고 : https://stackoverflow.com/questions/57666620/is-it-possible-for-a-navigationlink-to-perform-an-action-in-addition-to-navigati
[swift] Errors were encountered while preparing your device for development. Please check the Devices and Simulators Window. 해결책 단순히 Xcode 의 버그 라고 생각하면 된다. 이럴 때는 연결하고자 하는 폰을 재부팅하면 해결 완료!
[swiftui] print 입력하고 싶을 때!! 코딩하다 보면 print로 편하게 값을 보거나 flow를 디버깅하지 않고 보고 싶을 때가 있죠.. 이런식으로 View 안에 print를 입력하려면, 에러가 뜨게 됩니다. 이럴 때 간단하게 해결하는 마법 같은 코드가 있으니...!!! let _ = print("hi!") 이렇게 상수에 저장하고 print를 입력하면 됩니다!! 원리는 이해가 안되네요... _ 라는건 이름이 없다는 뜻인데 이름이 없을 때는 print 문을 실행시키는...? 혹시 아시는분은 댓글 달아주면 감사하겠습니다. ^~^ 참고한 자료 https://stackoverflow.com/questions/56517813/how-to-print-to-xcode-console-in-swiftui
[swiftui] Thread 1: Fatal error: No ObservableObject of type 에러 swiftui 를 하다보면 데이터를 탭간 이동할 때가 있다. 그럴 때 @EnvironmentObject 프로퍼티 래퍼를 사용하는데.... 탭을 사용하는 앱에서 위와 같은 에러가 뜬다면... 다음 내용을 확인해보자!! 탭뷰에 enviromentObject(**ObservableObject 할 클래스) 를 꼭 인스턴스 시키자. 나 같은 경우 위에 myPage 에서 VinoModel() 에 있는 값을 가져오려고 했는데 .... "Thread 1:Fatal error: No ObservableObject of type" 와 같은 에러로 고생했다. 폭풍 구글링과 코드를 하나씩 생각하면서 다시 바라보니... myPage().environmentObject(VinoModel()) 라고 값을 넘겨줘야한다!! 2시간 동..
[swift 오류] thread 1: "CALayer position contains NaN: 컴파일 할 때는 오류가 안뜨지만, 앱을 실행할 때 오류가 뜨면서 위와 같은 에러를 뱉는다. 위에서 말하는 것처럼 레이어 (뷰)를 그릴 때, 연산에서 입력이 잘 못 되었음을 알 수 있다. "참고... NaN(Not a Number)은 연산 과정에서 잘못된 입력을 받았음을 나타내는 기호" 나같은 경우는 화면을 그릴 때... .frame(maxWidth: .infinity, maxHeight: .infinity) 으로 입력해야하지만 minwidth 를 입력하여 화면구성하는데 오류가 났다. 이와 말고도 뷰를 그릴 때 매개변수가 잘못되면 오류가 날 수 있음을 알자!
'Cannot preview in this file -- active scheme does not build this file.' 에러 Xcode를 업데이트하고 나서 오랜만에 사용해봤는데, swiftui 를 사용하여 preview 를 보려고 하니 이 에러가 떴었다. 구글링을 해도 잘 안나와서 고생했는데 생각보다 쉽게 해결되었다. 정답은. preview 를 할 앱을 "macOS" 이 아닌 "IOS" 로 변경하면 된다. 대부분 앱을 개발하기 때문에 ios로 변경해서 preview 보면 문제는 해결 된다.