iOS/Swift(13)
-
[Swift] 배열 index 조회 및 삭제하기
배열(정확히는 Collection)에서 값을 조회하는 방법을 알아보자. firstIndex(of:) 는 배열의 앞에서부터 조회해서 첫번째 일치하는 값의 index를 반환한다. lastIndex(of:) 는 배열의 뒤에서부터 조회해서 첫번째 일치하는 값의 index를 반환한다. var arr: [String] = ["일번", "이번", "삼번", "사번", "이번", "육번"] if let firstIndex = arr.firstIndex(of: "이번") { print(firstIndex) // 1 } if let lastIndex = arr.lastIndex(of: "이번") { print(lastIndex) // 4 } 반환된 값은 Int? 이다. (조회했을 때 일치하는 값이 없을 경우가 있기때문에 ..
2020.08.13 -
[Swift] mailto와 MFMailComposeViewController
일하다가 mailto와 MFMail~의 차이점이 뭔지 궁금해져서 찾아봤다. mailto는 메일 앱을 통해메일을 보내는 것이고, MFMailComposeViewController는앱 내에서메일을 보내는 것이다. 메일 계정(설정 - 암호 및 계정)이 없을 경우 MFMailComposeViewController에서 false를 반환한다. class mailTest: MFMailComposeViewControllerDelegate { func sendMail() { let email = "ksmini0212@gmail.com" let subject = "Hello." let bodyText = "It's me" if MFMailComposeViewController.canSendMail() { // 메일 계정이..
2020.04.08 -
[Swift] 센트리(Sentry)를 사용해보자!
백엔드쪽에서는 많이 사용한다고 해요! 전 처음들어봤음 헤헤(사실 아는거 없음) 현재 내가 작성하는 동안은 문서는 swift에 대해선 별로 설명 안해주는거 같음..(5.0.0 베타로 업데이트 되어서 제가 못 찾은거임 ㅠ) Application Monitoring and Error Tracking Software 여기서는 그냥 내가 이래저래 삽질한걸 적은 글.. 센트리란? 센트리는 오류 로그, 오류 스택 트레이스를 모아서 보여주는 서비스로 오픈소스로 쉽게 설치 가능. 회사에서 사용하게 된 배경은 서버에서 로그를 쌓지 않고 있었고, 파이어베이스에서 익셉션 오류로 보여줄까 했지만 다른 크래시랑 겹칠경우 보기가 힘들다는 이유, ga는 갯수가 제한적이다라는 이유로 채택하게 되었다. (솔직히 CS용) 센트리가 패브릭..
2020.04.06 -
[Swift] textField / textView 끝의 공백 없애기
안녕하세요:) 생각보다 텍스트 필드나 텍스트 뷰의 마지막 부분에 공백을 처리하지 않고 프린트 하는 경우가 많더라구요..저도 그렇고^^; 이렇게 글자 제일 뒤에 공백이 입력이 되어 프린트를 하면 print(self.textView.text) Optional("이것은 한줄입니다 ") 이렇게 뒤에 공백이 프린트 됩니다. 그때 이렇게 let texts = self.textView.text.trimmingCharacters(in: .whitespaces) print(".\(texts).") 구별을 위해 글자의 앞 뒤로 .을 찍었습니다!. 프린트하면 .이것은 한줄입니다. 이렇게 뒤에 공백이 없어지지요. 하지만 이것도 뒤에 엔터를 치면 .이것은 한줄입니다 . 이렇게 프린트 됩니다 let texts = self.tex..
2019.03.19 -
[Swift] 한글 종성받침 유무에 따라 '을/를' 반환하기
한글 유니코드 값 초성: ((한글 유니코드 값 - 0xAC00 / 28) / 21) 중성: ((한글 유니코드 값 - 0xAC00 / 28) % 21) 종성: (한글 유니코드 값 - 0xAC00 % 28) func postPositionText(_ name: String) -> String { // 글자의 마지막 부분을 가져옴 guard let lastText = name.last else { return name } // 유니코드 전환 let unicodeVal = UnicodeScalar(String(lastText))?.value guard let value = unicodeVal else { return name } // 한글아니면 반환 if (value 0xD7..
2018.12.13 -
[Swift] 다국어(Localize) 처리하기 +a
안녕하세요:) 저번 포스트에서는 앱 다국어 처리를 알아보았습니다. 이번 포스트에서는 lbl.text = String(format: NSLocalizedString("Hello", comment: "")) 이 코드, 어떻게 일일이 다 치나요..? 간단하게 줄여보도록 합시다! 우선 String Extension 파일을 하나 만들어 줍니다. // StringExtension.swift extension String { var localized: String { return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "") } } 끝입니다. 쉽죠? 컨트롤러로 가서 lbl.text = "Hello".localiz..
2018.08.29