본문 바로가기
300x250

iOS/swift10

webView - 파일 로드 [ 파일 업로드 ]앱 내의 웹페이지에 파일을 업로드 해야할 때웹페이지 자바스크립트에서 작업해주어야 하는 부분 웹페이지에서 파일 선택 — — 버튼을 눌렀을 때 업로드를 위한 과정이 시작된다.iOS에서 작업해주어야 하는 부분 webView의 WKUIDelegate 메소드 중 webView(_:runOpenPanelWith:initiatedByFrame:completionHandler:) 를 사용// 파일 업로드 (WKUIDelegate)func webView(_ webView: WKWebView, runOpenPanelWith parameters: WKOpenPanelParameters, initiatedByFrame frame: .. 2025. 11. 27.
webView - 쿠키 네이티브에서 웹으로 쿠키를 전달웹뷰에 로그인 기능이 있고 이 로그인이 자동으로 되기를 원할때에도 응용 가능 일반적으로 웹 환경에서는 토큰 값을 전달할 때 쿠키를 사용한다.그 이유는 쿠키를 사용했을 때 Secure 또는 HttpOnly 속성을 설정하여 보안을 강화할 수 있기 때문쿠키를 사용하지 않으면 URL 파라미터로 전달하거나 evaluateJavaScript 를 사용하여 전달할 수 있지만 URL 파리미터로 전달하는 것은 토큰이 노출되고 evaluateJavaScript로 전달하는 것은 웹에서도 앱에서도 토큰을 처리하는 추가 로직의 구현이 필요하다.따라서 쿠키를 사용하면 앱에서는 단순히 토큰을 저장만 해주고 웹에서는 앱이 전달해주는 토큰이 포함된 쿠키가 자동으로 처리되어 보안의 강화와 편리함으로 일반적인.. 2025. 11. 14.
webView - 새 창 preferences.javaScriptCanOpenWindowsAutomaticallyJavaScript 코드에서 window.open() 같은 함수를 호출했을 때 Swift에서 자동으로 새 창을 열 것인지의 여부를 결정.기본적으로 false로 설정이 되어 있다.true 로 설정이 되어도 실제 새 창이 열리게 하려면 WKUIDelegate 의 webView(_:createWebViewWith:for:windowFeatures:) 메서드를 구현해야 한다. webView(_:createWebViewWith:for:windowFeatures:)새 창을 열려고 시도할 때 호출되는 델리게이트 메서드새 창을 열기 위해 이 메서드를 구현하지 않거나 nil 을 반환하면 새 창 열기 요청은 무시되고 차단된다.새 창 허.. 2025. 11. 12.
디버그, 릴리즈 용 사용 값 구분하기 SDK 사용할 때 Key 값들을 아무생각 없이 static let debugKey = 1static let releaseKey = 2이렇게 작성했다가 뒤늦게 아차 싶었다.그래서 디버그와 릴리즈 빌드시 사용하는 값들을 분리하여 읽어 올 수 있는 방법에 대해 찾아보았는데,info.plist에 변수를 작성하여 구분 하는 방법과 클래스를 작성하여 구분하는 방법이 있는 것 같았다.그러나 결국 info.plist를 사용하더라도 파일을 생성하고 값을 불러오는 코드를 작성해야 해서 클래스를 만들어 사용해보기로 했다! protocol APIKey { var aKey: String { get } var bKey: String { get }}디버그와 릴리즈용 클래스 모두 동일한 프로퍼티를 갖도록 프로토콜로 선언해준 뒤 .. 2024. 7. 8.
숫자 다루기 나눈 수의 소수점 사용하는 숫자의 타입이 Int일 경우 결과값도 Int형이므로 사용하는 숫자의 타입을 Double로 바꾸어야 한다. let num1 = 3 let num2 = 2 print(num1 / num2) // 1 let num1: Double = 3 let num2: Double = 2 print(num1 / num2) // 1.5 제곱근 찾기 let number = 121 print(sqrt(number)) // 11 2023. 11. 7.
attributedString 텍스트 양쪽에 이미지 넣기 let attributedString = NSMutableAttributedString(string: "") let leftImageAttachment = NSTextAttachment() leftImageAttachment.image = UIImage(named: "quotes_left") attributedString.append(NSAttributedString(attachment: leftImageAttachment)) attributedString.append(NSAttributedString(string: " \(msg!) ")) let rightImageAttachment = NSTextAttachment() rightImageAttachment.image = UI.. 2022. 12. 26.
Array append(_:) vs append(contentsOf:) append : 하나의 element를 배열 맨 뒤에 추가해준다 var numbers = [1, 2, 3, 4, 5] numbers.append(100) print(numbers) // Prints "[1, 2, 3, 4, 5, 100]" append(contentsOf): 여러개의 elements를 배열 맨 뒤에 추가 해준다. var numbers = [1, 2, 3, 4, 5] numbers.append(contentsOf: 10...15) print(numbers) // Prints "[1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15]" 출처 : https://developer.apple.com/documentation.. 2022. 12. 21.
String 특정 문자 제거 양끝 문자 제거 중간에 있는 문자는 제거 불가능 var helloStr = "Hello!" var iosStr = "#iOS" var swiftStr = "#Swift!" helloStr.trimmingCharacters(in: ["!"])//Hello iosStr.trimmingCharacters(in: ["#"])//iOS swiftStr.trimmingCharacters(in: ["#","!"])//Swift 중간에 있는 문자 제거 var str = "Hello~!@@@, Swift Zedd" str.components(separatedBy: ["~","!","@",",","Swift"])//error!! var str = "Hello~!@@@, Zedd" str.components.. 2022. 9. 22.
진법 변환 Radix https://developer.apple.com/documentation/swift/int/init(_:radix:) 문자열이나 기수에서 integer 값을 만들어 준다. 10진수 -> 2진수 let num = 78 print(String(num, radix: 2)) // 1001110 2진수 -> 10진수 let num = "1001110" print(Int(num, radix: 2)!) // 78 nonzeroBitCount https://developer.apple.com/documentation/swift/fixedwidthinteger/nonzerobitcount 이진값에서 1의 개수를 알려준다. let num = 78 print(num.nonzeroBitCount) // 4 2022. 8. 31.
300x250