본문 바로가기

swift82

Widget bundle id 설정해주기 위젯을 지원하는 앱의 경우는 앱의 Bundle Identifier도 Developer Portal에 등록 필요. 동일한 프로젝트 안에 있더라도 Widget도 별도의 Target이기 때문에 identifier가 존재. 위젯의 Bundle id를 등록해두지 않은 상태라면 Developer portal에 접속하여 등록 필요. 프로젝트 설정 초기에 Xcode Cloud로 앱의 identifier를 만들어 두었는데, 당시에는 widget을 추가하지 않은 상태여서 그런지 나중에야 따로 추가해 주어야 된다는 것을 알게 되었습니다. Idenfitier의 종류에는 여러가지가 있는데, widget도 App IDs로 선택해서 설정해주면 됨. 다음 페이지에서 App과 App Clip 중에 선택할 때도 마찬가지로 App으로 선.. 2023. 12. 15.
XCode Log에 필요하지 않은 실행 정보가 같이 출력될 때 설정 방법 이번에 XCode를 업데이트하고 사용하는데, 원래와는 다르게 너무 많은 정보가 로그로 나왔습니다. 한 번도 로깅 관련 설정을 한 적이 없었는데, 이번 기회에 설정하는 방법을 알게 되었습니다. Xcode에서 Edit Scheme으로 들어가서 (시뮬레이터 선택 버튼 좌측 타겟 관련 버튼을 눌러서 들어가도 되고, Product > Scheme > Edit Scheme으로 들어가도 됩니다.) 좌측에 Build, Run 등등 scheme 중 적용을 원하는 scheme을 선택하고, Environment Variable에서 Name 부분에 OS_ACTIVITY_MODE를 입력하고 Value에는 disable을 입력해줍니다. 설정을 완료한 다음 다시 실행해 보니 extra log들이 더 이상 안 나오게 사용할 수 있었.. 2023. 12. 14.
커스텀 UIButton 터치 인식 안되는 경우 UIButton도 커스텀하여 사용하는 경우가 많은데, 만든 버튼이 특정 부분만 터치가 인식되거나 전체적으로 터치가 인식되지 않기도 합니다. 그럴 때는 버튼을 구성하는 UIView들의 `isUserInteractionEnabled` 프로퍼티를 false로 바꾸어주면 됩니다. final class AppThemeButton: UIButton { private let containerView: UIView = { let view = UIView() view.isUserInteractionEnabled = false // 이 부분 view.backgroundColor = .clear view.translatesAutoresizingMaskIntoConstraints = false return view }() p.. 2023. 12. 6.
String / Array 뒤집기 1. Array 뒤집기 var myArr1 = [1,2,3,4] // 1. reverse(): 요소들의 위치를 반전 시켜라. myArr1.reverse() // -> myArr1 자체의 요소 위치가 변경됨. print(myArr1) // [4,3,2,1] var myArr2 = [1,2,3,4] // 2. reversed(): 요소들의 위치가 이미 반전이 됨. let reversed = myArr2.reversed() // -> 요소 위치가 반전된 값이 반환됨. print(myArr2) // [1,2,3,4] print(reversed) // [4,3,2,1] NOTE: reverse() 메서드는 mutating 메서드이기 때문에 Struct인 Array의 요소에 변경을 줄 수 있는 것! https://.. 2023. 11. 29.
UnicodeScalar Swift에서 Character는 한개 이상의 UnicodeScalar로 구성되어 있습니다. Unicode는 숫자와 글자 (key & value)가 1:1로 맵핑된 형태의 코드입니다. 숫자 65는 대문자 A 이런 식으로 맵핑이 되어있습니다. 전세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식입니다. 참고로 "U+"라는 접두어가 붙어 있으면 유니코드를 의미합니다. 만일 특정 String을 unicode로 사용하고 싶다면, let myString = "A" let scalar:Unicode.Scalar? = UnicodeScalar(myString) UnicodeScalar 이니셜라이저 파라미터로 String을 넘겨주면 됩니다. Character는 파라미터로 넘길 수 없어서, String으로 변.. 2023. 11. 28.
입력 방법 및 자주 사용되는 functions 입력 받기 기본 readLine()으로 입력 받음. readLine()은 Optional(String) 타입 1. String 입력 받기 let myString = readLine()! //입력이 확실한 경우 강제 언래핑 사용. 2. Int 입력 받기 let myInt = Int(readLine()!)! // Int 이니셜라이저도 Optional(Int)를 반환하므로 언래핑 필요 3. 공백으로 구분되는 입력 받기 let stringsWithBlanks = readLine()! let stringArray: [String] = stringsWithBlanks.split(separator: " ") let intsWithBlanks = readLine()! let intArray: [Int] = intsWi.. 2023. 11. 25.
반응형