반응형

개발 관련/iOS SWIFT 27

[XCode] git 사용시 xcuserstate 매번 바뀔때..

해당 파일은 사용자 정보가 들어가는걸로 알고 있는데.. 자세한 건 애플만이 알겠지.. 라는 생각으로 변경 이력을 받아주고 있었으나.. 매번 git에서 변경이 일어나 짜증나니 무시를 하려 한다. git rm --cache 프로젝트명.xcodeproj/project.xcworkspace/xcuserdata/사용자.xcuserdatad/UserInterfaceState.xcuserstate .gitignore 파일 변경 *.xcuserstate 이렇게 해주면 더이상 귀찮게 굴진 않는다. 애플의 큰 뜻을 져버렸다.

[Xcode15 오류] DT_TOOLCHAIN_DIR cannot be used...

XCode15로 올리고 난면 pod사용자는 오류가 나는 경우가 있다.. DT_TOOLCHAIN_DIR cannot be used... 이럴때는 당황하지 말고.. pod의 다음버전 업데이트 1.13.0을 기다리는 방법이 있다. 하지만, 우리는 반드시 컴파일을 해야 한다는 사명을 가지고 있다면 다음과 같은 방법을 사용할 수 있다. 해당 프로젝트/Pods/Target Support Filess/해당모듈/해당모듈명.debug.xcconfig 해당 프로젝트/Pods/Target Support Filess/해당모듈/해당모듈명.release.xcconfig 위 두개 파일을 열어서 오류가 나는 DT_TOOLCHAIN_DIR을 TOOLCHAIN_DIR으로 고쳐주고 빌드한다. 정상 동작을 하는가? 오류가 나는 모드 모듈을..

[Swift] UIKit소스에서 SwiftUI 화면 사용하기

SwiftUI에 대한 필요가 있어서, 테스트를 해보려고 하는데 UIKit기반의 프로젝트일 경우 난감하다. 이때 어떻게 하면 프로젝트 하나에서 두가지 화면을 동시에 테스트 할 수 있을까 고민하고 찾아보니 다음과 같은 방법이 있었다. 먼서 SwiftUI로 뷰를 하나 만들어 놓고, 이때 이름을 "Home"이라고 지었다고 치자. UIKit의 소스에서 다음과 같은 방식으로 호출이 가능하다. let vc = UIHostingController(rootView: Home()) self.navigationController?.pushViewController(vc, animated: true) 하지만, 위와 같이 사용하면 오류가 발생할 것이다. "응 뭐지?" 라고, 이새키도 구라글을 쓰는 시키구만 하고 다음 글을 찾아..

[Swift] 고차함수 (map, filter, reduce) 1회차

안녕하세요. 맥파이입니다. 오늘은 고차 함수에 대해 공부를 해보려고 합니다. 고차함수 Swift에서 고차 함수란, 다른 함수를 매개변수로 받거나 함수를 반환하는 함수를 말합니다. 함수를 다루는 함수입니다. Swift에서는 map, filter, reduce 등의 고차 함수가 제공됩니다. 이러한 고차 함수들은 각각의 요소를 처리하는 방법을 정의한 함수를 인자로 받아 이를 기반으로 요소들을 처리하고 새로운 컬렉션을 반환합니다. 고차함수의 종류 map: 배열의 모든 요소에 동일한 작업을 수행하고 새로운 배열을 반환합니다. filter: 주어진 조건에 따라 배열의 요소를 필터링하여 새로운 배열을 반환합니다. reduce: 배열의 모든 요소를 결합하여 하나의 값으로 만듭니다. flatMap: 배열의 각 요소에 동..

[Swift] ARC(Automatic Reference Counting), 참조 카운트

안녕하세요. 맥파이입니다. ARC에 대해서 학습해볼 예정입니다. ARC(Automatic Reference Counting) ARC(Automatic Reference Counting)는 Swift의 메모리 관리 방식 중 하나로, 객체에 대한 참조 카운트를 추적하여 객체가 사용되는 동안에는 메모리에 유지되도록 하는 것입니다. class Person { var name: String init(name: String) { self.name = name } deinit { print("\(name) is being deallocated") } } var someone: Person? someone = Person(name: "John") someone = nil // Prints "John is being d..

[Swift] Generic에 대해 공부해봅시다.

안녕하세요. 맥파이입니다. 오늘은 Generic에 대해 학습을 진행해보겠습니다. Generic Generic은 함수, 메소드, 클래스, 구조체, 열거형 등에서 사용할 수 있는 타입 안정성(Type Safety)을 보장하면서 재사용 가능한 코드를 작성할 수 있게 해주는 기능입니다. Generic을 사용하면 여러 다른 타입에서 동일한 로직을 적용할 수 있어 코드의 재사용성을 높일 수 있습니다. Generic은 타입 매개변수(Type Parameters)를 사용하여 구현됩니다. 타입 매개변수는 제네릭 코드를 작성할 때 실제 타입으로 대체될 수 있는 임시 타입 변수입니다. 제네릭 코드에서 타입 매개변수는 "" 안에 선언됩니다. func printValue(value: T) { print("Value: \(val..

[Swift] typealias와 associatedtype의 차이점

안녕하세요. 맥파이입니다. 오늘은 typealias와 associatedtype의 차이점을 알아보려고 합니다. typealias와 associatedtype가 궁금하신 분은 아래 링크에서 먼저 확인해보시죠! 2023.04.05 - [iOS 개발/swift] - [Swift] Typealias란 무엇인가? [Swift] Typealias란 무엇인가? 안녕하세요 맥파이입니다. 오늘부터는 Swift를 공부하면서, 한번씩 이게 뭐지 할수 있는 것들에 대해 정리를 해볼려고 합니다. 여러번 정리를 해보고 했지만, 글로 남겨두지 않으니 필요할때 다 www.magpiebros.com 2023.04.05 - [iOS 개발/swift] - [Swift] Associated Type 이란? [Swift] Associated..

[Swift] enum은 무엇인가?

안녕하세요 맥파이입니다. 오늘 공부할 것은 enum[열거형] 입니다. enum[열거형] enum은 관련된 값들을 열거 해놓고, 선택하여 사용하는 것입니다. 글로 쓰면 이해가 안갈수 밖에 없습니다.. 예를 하나 들어보겠습니다. 위시리스트를 만들고, 갖고 싶은 물건을 목록으로 저장한다고 생각해보죠. 건담, 스피커, 돈이 제 위시리스트입니다! 이걸 하나 하나 나열해보죠. let wish1 = "gundam" let wish2 = "speaker" let wish3 = "money" 소스 어딘가에서 내가 갖고 싶은 위시리스트중 하나를 저장한다고 합시다. 그럼 wish1, wish2, wish3을 다 기억하고 있다가 그 중에 하나를 가져다가 할당해야 하겠지요? 이럴때, 내 위시리스트를 하나의 열거형으로 저장해놓으..

[Swift] Associated Type 이란?

안녕하세요. 맥파이 입니다. 오늘은 Associated Type를 파헤질 예정입니다. Associated Type은 프로토콜에서 사용됩니다. Associated Type은 프로토콜을 위한 Generic이라고 생각하시면 됩니다. Generic에 대해서도 정리가 필요해 보입니다. 프로토콜 잘 모르시겠나요? 아래 링크로 학습을 해보시죠!! 2023.04.05 - [iOS 개발/swift] - [Swift] Protocol 프로토콜이란? Associated Type protocol MagpieProtocol { var value: String { get } } MagpieProtocol을 채택하는 타입은 value를 정의해 주어야 합니다. 현재는 value는 String값입니다. Int값이 있는 value가 필..

반응형