전체 글 127

[xcode] 텍스트 필드에 숫자 키보드 띄우기 (keyboard type)

텍스트 필드 처럼 사용자 입력을 받을 때 입력 받을 내용에 받는 키보드를 띄우는 것이 맞다고 생각한다. 숫자를 입력 받을거면 숫자 키보드가 뜨고, 전화번호를 입력 받을 경우에는 전화번호를 입력하기 편한 키보드가 뜨는 것이 사용자 경험에 좋다. 전화번호를 입력하라고 해놓고서는 일반 키보드가 뜨면 짜증난다... 아무튼 xcode에서 텍스트 필드를 눌렀을 때 나올 키보드 타입을 정하려면 오른쪽 attribute inspector 에서 Keyboard Type 에서 원하는 타입의 키보드를 선택하면 된다. UITextField 클래스가 채택하는 UITextInputTraits 프로토콜에 keyboardType 프로퍼티가 있다. (UIKeyboardType 이라는 enum 타입)

[ios 개발] iOS, iPadOs 버전별 사용 현황 확인하기

웹이건 모바일이건 서비스를 개발할 때 어디부터 지원할 것인지 정해야 한다. 애플 쪽도 아이폰과 아이패드의 몇 퍼센트가 어떤 ios, iPadOs 을 사용하고 있는지 알려주는 사이트가 있다. https://developer.apple.com/kr/support/app-store App Store - 지원 - Apple Developer App Store 사용자는 App Store에서 iPhone, iPad, Mac, Apple TV 및 Apple Watch용 앱을 쉽게 찾고 구입하고 다운로드할 수 있습니다. Apple Developer Program에 등록하여 앱을 디자인 및 개발하고 App Store에 앱을 배포 developer.apple.com 현재 2022년 1월 기준으로 아이폰 기기에서는 72%가..

[swift] 문자열 끝에서 자르기 dropLast()

출처: https://developer.apple.com/documentation/swift/string/2893517-droplast Apple Developer Documentation developer.apple.com 문자열을 끝내서 잘라낸 후 남은 문자열만 취하고 싶으면 dropLast(:) 메소드를 사용하면 된다. let x = "10%" print(x.dropLast()) // "10" print(x.dropLast(1)) // "10" 위와 같음 print(x.dropLast(0)) // "10%" 끝에서 아무것도 잘라내지 않음 다만 잘라낸 후 반환하는 문자열의 타입은 String이 아닌 Substring이기 때문에 String이 필요하다면 타입을 바꿔줘야 한다. print(type(of:..

swift & iOS/swift 2022.01.23

[swift] 후행 클로저 (trailing closure)

https://what-whale-wants-to-say-is.tistory.com/70 [swift] 클로저 closure (feat. 함수) 스위프트의 함수는 '1급 객체'이다. 1급 객체의 특징은 다음과 같다. - 변수에 저장할 수 있음 - argument로 전달할 수 있음 - 리턴값으로 사용할 수 있음 제목은 클로저라고 써놓고는 왜 함수를 얘기 what-whale-wants-to-say-is.tistory.com 저번에 클로저에 대해 정리해서 포스팅한 적이 있는데 너무 길어져서 후행 클로저 부분을 마저 하지 못했다. 마저 해야지 어떡해 그럼...... 이번에도 공식문서를 알차게 참고하였다. 출처: https://docs.swift.org/swift-book/LanguageGuide/Closures..

swift & iOS/swift 2022.01.23

[swift] 열거형 enumeration 그리고 enum 배열처럼 사용하기

enumeration(줄여서 enum)은 특정 값들 중에서 하나만 선택되도록 하며 이 외에 원하지 않는 값이 선택되는 것을 방지한다. swift 공식문서에는 enumeration에 대해 이렇게 나와있다. (관련 있는 값들의 그룹에 대한 타입을 정의하여 그 타입에 맞는, 그 그룹에 속한 값들만 사용할 수 있게 해준다.) An enumeration defines a common type for a group of related values and enables you to work with those values in a type-safe way within your code. 출처: https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html 예를 ..

swift & iOS/swift 2022.01.22

[swift] failable initializer

클래스, 구조체, 열거형을 초기화 할 때 필요한 프로퍼티를 모두 제공하지 않거나 유효한 프로터피를 제공하지 않거나 아니면 다른 어떤 이유로 초기화가 실패할 수 있다. 그런 경우에 대비에 하나 이상의 failable initializer를 선언할 수 있다. init 뒤에 ? 만 붙이면 된다. 대신 아래처럼 parameter의 이름과 타입이 같은 init과 init? 을 동시에 선언할 수는 없다. // 아래처럼 init과 init?의 parameter의 타입과 이름이 똑같을 수 없음 class User { let age: Int let name: String init(age: Int, name: String) { // ... } init?(age: Int, name: String) { // ... } } 예..

swift & iOS/swift 2022.01.21

[swift] struct vs. class 구조체와 클래스 (간단함 주의)

구조체와 클래스................................. 말만 들어도 정말 쓸 내용이 많아 보이는데, 일단 여기서는 간단하게 struct와 class 비교에 대해서만 정리하려고 한다. 보충할 내용 있으면 따로 쓰던가 여기에 더 붙여서 작성하려고 한다. struct은 상속 기능이 없다. 그러나 class는 부모 클래스를 가질 수 있고 상속 기능이 있다. class MyClass: ParentClass { } struct은 프로퍼티에 초기값이 없어도 자동으로 init() 해주지만 class는 프로퍼티에 초기값을 할당하지 않을 땐 class 내부에 init()을 꼭 작성해야 한다. struct은 passed by value이고 class는 passed by reference이다. 이게 무슨 ..

swift & iOS/swift 2022.01.20

[swift] 옵셔널 optional 타입을 다루는 5가지 방법

https://www.udemy.com/course/ios-13-app-development-bootcamp/ 요새 이 강의도 들으면서 공부하고 있는데 여기에서 옵셔널 타입을 다루는 방법을 잘 알려준 부분이 있어서 기록으로 남긴다. 분명 다음 주에 내가 다시 볼 듯... 1. forced unwrapping (! 키워드 사용, 강제로 옵셔널 벗기기) ! 키워드를 사용하여 옵셔널을 벗겨내는 방법인데 이 방법은 옵셔널 값이 nil인지 실제로 어떤 값이 있는 것인지 확인하지 않고 무조건 벗기기 때문에 안전하지 않다. 옵셔널 nil을 강제로 옵셔널을 벗기려고 하면 프로그램이 에러를 내뿜으며 종료되어 버린다. 켁 let num: Int? num = 10 // Optional(10) let anotherNum = ..

swift & iOS/swift 2022.01.20

[ios 개발] xcode에서 no assistant results 나올 때

storyboard 파일을 켜놓고 assistant를 활성화 시키면 아이폰 화면과 viewController 파일을 같이 볼 수 있어서 편하다. 그런데 종종 viewController 가 보여야 할 자리에 no assistant results 라고만 나오면서 파일이 안 보일 때가 있다. 그럴 땐 xcode 다시 켜면 되는데 너무 귀찮다. 아래 스택오버플로우에 나온 방법들 중에서 나한테 제일 편했던 방법은 1. 일단 no assistant results 라고 나오는 부분을 한번 클릭해준 다음 2. xcode의 제일 왼쪽에 나오는 네비게이터(폴더 있고 파일을 쭉 나오는, 접었다 폈다 할 수 있는 그 부분!) 에서 지금 보여야 할 viewController 파일을 맥 키보드의 option키를 누르고 클릭 3...