본문 바로가기

전체 글217

Selector란? Selector란?UIButton을 누르면 어떤 동작을 수행하게 할 것인지 action을 추가할 때 보면 `#selector`구문을 사용해서 사용될 method를 알려주게 됩니다. 이 selector는 method 이름을 알려주는 방식이고, class나 struct 내부에 정의된 method 이름을 지칭합니다.왜 selector를 이용해야 할까요? Swift와 Obj-c 간의 bridge 역할을 수행해 줍니다. 즉, Objective-C 기반의 코드를 Swift에서 사용하기 위한 방식들 중 하나입니다. selector에 들어갈 수 있는 method는 반드시 `@objc`를 앞에 붙여주어야 하는데, 이 attribute를 붙여주어야만 Objective-C runtime에 접근이 가능해지기 때문입니다.언제 .. 2025. 4. 3.
14. Longest Common Prefix - 접근 방법: 1. 주어진 strs array를 string count에 따라 오름차순 정렬.2. 정렬된 array의 요소들의 firstLetter를 한 번씩 확인. 모든 요소들의 first letter가 동일하면 result에 추가하고, 그렇지 않으면 return.3. strs array의 첫번째 요소가 가장 count가 작기 때문에, 이 string의 count가 0이 되면 더 이상 확인하지 않음.class Solution { func longestCommonPrefix(_ strs: [String]) -> String { var sortedStrs: [String] = strs.sorted { $0.count = Set() while true { .. 2025. 1. 28.
Mac app에 Firebase Remote Config 적용 시 발생 한 에러 및 해결 방법 1. Failed to get installations token.Error Domain=com.google.remoteconfig.ErrorDomain Code=8003 "Failed to get installations token. Error : Error Domain=com.firebase.installations Code=0 "Underlying error: The operation couldn’t be completed. SecItemAdd (-34018)" UserInfo={NSLocalizedFailureReason=Underlying error: The operation couldn’t be completed. SecItemAdd (-34018), NSUnderlyingError=0x600.. 2025. 1. 12.
MacOS app개발 시 custom font 추가하기 iOS에서 하는 방식과 동일하게 하였는데도 custom font를 인식하지 못하는 현상이 있어 한참을 헤매고 있었는데, 다행히 SOF에 동일한 문제에 대한 해결 방법이 나와있어 도움을 받았습니다. 다른 방식은 iOS에서 custom font를 추가하는 것과 동일하고, 원하는 타겟의 info.plist에 아래의 key, value를 추가해주면 됩니다. 이 key의 값으로 설정된 path에서도 font를 찾는다고 합니다. 이걸 따로 설정해줘야 한다는 건, MacOS에서 기본적으로 읽는 font 경로와 제가 추가한 font의 경로가 달라서 그렇다는 얘기일텐데.. 왜 iOS랑은 다르게 되어 있는 지 궁금하긴 합니다만 정확한 이유는 모르겠습니다.  혹시나 저와 비슷한 현상이 있으신 분들께 도움이 되면 좋겠습니다... 2025. 1. 6.
Xcode Asset에서 unassigned가 발생할 때 해결 방법 Asset에 넣은 뒤에는 이름을 영어로 바꾸어서 사용하고 있었지만 원본 파일 이름에 한글이 들어가 있던 파일이 하나 있었는데, 해당 파일에서 unassigned 문제가 생겼습니다.  처음으로 한글이 들어간 파일을 사용해봤더니 처음 보는 문제였습니다. commit 과정에서 문제가 있었나 싶어서 파일을 삭제하고 clean build도 해본 다음 다시 파일을 넣었는데도 동일한 문제가 있어서 뭔가 이상하다 생각하게 되었습니다. 구글링을 좀 해보니 다행히도 금방 해결책을 찾을 수 있었습니다. 영어로만 이루어진 이름으로 원본 파일명을 바꿔서 해결했다는 사례가 있어서 저도 시도해보았고 이 방법을 이용하니 unassigned 문제가 사라졌습니다.혹시 그래도 문제가 남아 있는 경우라면 clean build도 한 번 해보.. 2024. 12. 23.
SwiftUI Segment Picker의 round 유지하며 background color 변경하기 SwiftUI의 Picker view의 `pickerStyle`을 .segmented로 설정해주면, UIKit의 `Uisegmentedcontrol`과 같은 모양의 UI를 사용할 수 있습니다.   기본적으로 배경색이 회색이고 round된 corner를 가진 모양입니다. 배경색상을 변경할 필요가 있었고, `background`를 설정해주면 될 것 같아 적용해 보았습니다. struct SegmentedView: View { @Binding var element: PickerElement var body: some View { Picker(selection: $element) { ForEach(PickerElement.allCases) { .. 2024. 11. 18.
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory 에러 해결방법 Terminal로 편하게 XCode project를 열기 위해서 `xed` 명령어를 애용하고 있습니다.최근에 XCode 버전을 여러 개 설치하면서 XCode app의 이름을 바꿨더니, 아래와 같은 에러를 만나게 되었습니다.xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory ...(생략)...  XCode 앱의 이름을 바꿨다 보니 아무래도 해당 부분을 바꾸어 줘야 되는 건가 싶은 생각이 들었습니다. 우선, 현재 xed 명령어 실행 시에 어느 경로를 체크하는 지 알기 위해서는 아래 명령어를 입력해 줍니다. xcode-select -p 그러면 현재 설정되어 있는 경로를 반환해줍니다.저는 `/Applicatio.. 2024. 11. 14.
SwiftUI Pinch Gesture 적용하기 (view crop도 같이 적용) 적용된 기능1. 두 손가락 pinch2. Pinch 되는 view가 특정한 frame size를 넘어가면 이미지가 잘리도록3. Pinch가 시작되는 부위부터 zoom 되도록 struct PinchView: View { @GestureState private var magnifyBy = 1.0 @State private var accumulatedScale: CGFloat = 1.0 @State private var scaleAnchor: UnitPoint = .center var magnification: some Gesture { MagnifyGesture() .updating($magnifyBy) { value, gestureState, tranx.. 2024. 11. 8.
Console에서 info, debug 내용 나오지 않을 때 혹시 console에서 로그가 안보이는 경우 확인해볼 사항! info, debug로 만약 로그를 찍고 있다면, Console 옵션바 Action에서 체크표시를 해주어야 console에서 볼 수 있음. 2024. 7. 20.
반응형