ios개발 92

swift xcode - Storyboard ID란?

개발하다 보면 xcode에 Storyboard ID라는게 있습니다. 언제 사용하는 건고 하니 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let _ = (scene as? UIWindowScene) else { return } let storyboard = UIStoryboard(name: "Total", bundle: nil) guard let vc = storyboard.instantiateViewController(withIdentifier: "Total") as? TotalViewController else { ..

ios개발 2021.08.09

swift xcode custom font 추가하기, 원하는 폰트 찾는 방법.

일단 폰트를 찾는 방법은 https://fonts.google.com/?preview.text=January&preview.text_type=custom Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 구글 폰트를 사용하면 된다. 라이센스가 적혀있는데 전부 무료인거 같다. 그리고 버튼을 클릭하여 다운로드 받고 파일을 추가 하여준다. 그리고 info.plist에도 알려줘야 한다. 어떤 파일이 커스텀 폰트 파일인지. 그리고 마지막으로 오른쪽 창에서 타겟 맴버쉽을 꼭 확인해준다.

ios개발 2021.08.09

swiftUI - 글자 위치 높이 조절하기, baselineOffset

baselineOffset이라는 말을 몰랐다. 개발중에 단어의 위치를 조금 내리거나 올리고 싶을때가 있는데, 글자를 포함한 라벨?의 높이를 조절하는 방법도 있겠지만, 이게 부적절한 경우도 있다. 그럴 경우 baselineOffset을 이용하면 좋다.. HStack(alignment: .top) { Text("Hello") .baselineOffset(-10) .border(Color.red) Text("Hello") .border(Color.green) Text("Hello") .baselineOffset(10) .border(Color.blue) } .background(Color(white: 0.9))

ios개발 2021.08.09

swift Realm 기본 사용법과 예제 - 저장하기, 꺼내기, 업데이트, filter

1. podfile에 두개를 추가해주고, pod upate를 합니다. pod 'Realm' pod 'RealmSwift' 2. 그리고 저장하려는 데이터의 타입에 맞춰 모델을 선언해 줍니다. import RealmSwift class GoalInfoModel: Object { @objc dynamic var goalWeight: Double = 0 } 3. 그리고 이제 저장과 꺼내기, 업데이트를 관리할 클래스를 생성합니다. RealmSwift를 임포트 하고 realmInstance를 아래처럼 선언합니다. 그리고 저장은 add를 통해서 하고, 꺼내는 것은 objects를 통해 할 수 있습니다. 이때 원리는 해당 오브젝트 타입으로 저장된 모든 객체들이 꺼내지므로, first를 통해 그중에 가장 먼저 저장된 것..

ios개발 2021.08.09

Swift - Getters and Setters 스위프트 get, set

Getters and Setters 기본적으로 상수, 변수, 프로퍼티들 그리고 subscript들은 자동적으로 그들이 속한 상수,변수,프로퍼티 또는 섭스크립트와 동일한 수준의 접근 제한 레벨을 갖는다. 우리는 아래에서 한 변수의 get - 변수를 참조할때, set - 변수를 설정할 때의 접근 제한 레벨을 다르게 설정하는 법에 대해 알아볼 것이다. 즉 변수를 가져와 사용할때는 private인데, 변수에 값을 넣을때는 internal일 수 있다!! struct TrackedString { private(set) var numberOfEdits = 0 var value: String = "" { didSet { numberOfEdits += 1 } } } 위에서 TrackedString 구조체랑 value 프..

ios개발 2021.07.24

Swift - Access Control, 스위프트 제한자(open, public, internal, fileprivate, private)

open, public - 프로젝트안의 모든 모듈간에 사용이 가능하다. 즉 import로 불러온 모듈의 open으로 변수도 접근이 가능하다. 그래서 보통 모듈의 api 인터페이스들을 선언할때 주로 사용한다. 아래 코드의 예를 들면 import alamofire로 불러와서 alamofire의 upload 함수가 open으로 선언된 함수이다. Alamofire.upload(multipartFormData: { multipartFormData in multipartFormData.append(imageData, withName: "imagefile", fileName: "image.jpg", mimeType: "image/jpeg") }, to: "http://api.imagga.com/v1/content",..

ios개발 2021.07.24

<iOS 디버깅> app store connect 배포 에러 ITMS-90713

ITMS-90713: Missing Info.plist value - A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'xxxx'. 보통 찾아보면, info.plist에서 icon name을 Assets 폴더의 AppIcon으로 설정 안해줘서라고만 나오는데... 내 경우는 그게 아니라. Assets를 다른 아이콘 메이커 사이트에서 그대로 가져와 붙여넣었는데 그 과정에서 타겟 맴버쉽에 선택이 안되어서 위의 에러가 떴다... 한 에러에는 다양한 이유가 있을 수 있구나...

ios개발 2021.05.11