도메인이 키체인의 도메인과 같으면 키체인 암호를 사용하게 해 준다! https://developer.apple.com/documentation/security/shared_web_credentials Shared Web Credentials | Apple Developer Documentation The Security.SecSharedCredentials API provides functions for storing and requesting shared password-based credentials. Users often save their username and password in their iCloud keychain when logging into websites in Safari. Late..
https://developer.apple.com/videos/play/wwdc2019/258/ Architecting Your App for Multiple Windows - WWDC 2019 - Videos - Apple Developer Dive into the details about what it means to support multitasking in iOS 13. Understand how previous best practices fit together with new... developer.apple.com [ iOS 12와 그 이전 ] AppDelegate - Process Lifecycle -- didFinishLaunchingWithOption~ -- applicationWillT..
!!! IOS 개발한지 1년이 넘어서 알아버린 내용... 미리 알았다면 더 개발을 잘했을텐데 싶은 내용이었다....!!!! stored property는 한국말로 저장 프로퍼티. computed property는 한국말로 연산 프로퍼티. (꼼꼼한 재은씨 책 기준) ======== class / struct / enum에는 지역변수를 만들 수 있다. (enum은 약간 예외). 이, class나 struct 안에 있는 변수를, property라고 부른다는 것은 이미 알고 있을 것이다. 하지만 이 property에는 두가지 종류가 있는데....바로 stored property와 computed property 인 것이다!!! 참조) stored property는 class와 struct에서만 사용 가능하다. ..
command + option + shift + V
iOS를 공부하다 보면 ARC에 대해 많이 듣게 된다. ARC는 'Auto Reference Counting' 의 약자이다. 클래스 인스턴스를 참조하는 곳이 몇군데인지, 자동으로 카운트 해주는 객체 라고 생각하면 된다. 인스턴스를 모니터링 하면서, 인스턴스가 변수 / 상수 / 함수의 인자값으로 할당되면, 카운트를 1 증가시킨다. 종료되면 1만큼 감소시킨다. 0이 되면 메모리에서 해제 해준다! Objective-C에서는 ARC가 없어서, 프로그래머들이 직접 안쓰는 인스턴스를 해제해줬다고 한다. 스위프트가 얼마나 발전한 언어인지? 새삼 느낄 수 있는 대목이다....
// runJavaScriptAlertPanelWithMessage func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) { let alertController = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in ..
class와 struct도 subscript를 정의할 수 있다는 내용이 있어서, 이게 무슨 얘기일까 싶어서 찾아본 내용을 블로그에 간단하게 정리해보려 한다. 이렇게 array뒤에 [0]을 붙이는게, subscript인 것은 이미 알고 있을 것이다. 하지만 (놀랍게도) class와 struct에서도 []를 붙여서 값에 접근 할 수 있다고 한다. 이런식으로 써 줬을 때, subscript를 마치 함수처럼 쓸 수 있어진다. 사실 쓰는 이유는 아직 잘 모르겠다.
# swift 스타일 맞추기 ## google swift 문서 참조하기 https://google.github.io/swift/ 이 문서에 있는 것을 표준으로 사용한다 ## SwiftFormat extension 사용하기 https://github.com/nicklockwood/SwiftFormat 1. 프로젝트를 클론받는다 ( Download ZIP ) 2. 폴더 안에서 EditorExtension > SwiftFormat for Xcode.app을 응용 프로그램 폴더로 옮긴다 3. 시스템 환경설정 > 확장 프로그램 > 모두 에서 SwiftFormat for Xcode를 체크해준다. 4. SwiftFormat 응용프로그램을 열어서, Infer Options Automatically를 체크 해제하고, i..
import UIKit import QRCodeReader import AVFoundation import WebKit import SideMenu class HomeViewController: UIViewController, WKNavigationDelegate, WKUIDelegate { @IBOutlet weak var webView: WKWebView! var popupWebView: WKWebView? @IBAction func didTapSideBarButton(_ sender: Any) { } func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction..
정말정말 특이한 함수들이 많다 ‼️‼️‼️‼️
segementControl.selectedIndex == 0... 이런식으로 쓰면됨
터미널에 echo ""
후 내 4시간 돌려줘요... " Because the ? isn't part of a path. It's a separator to signal the beginning of the query string. You can read about the different components of a URL in this article. Each component has its set of valid characters, anything not in that set needs to be percent-escaped. The best option is to use URLComponentswhich handles the escaping automatically for you: " var urlComponents =..
print(response.request)
let uuid = UUID().uuidString
https://medium.com/@jang.wangsu/ios-swift-fcm-firebase-cloud-messaging-push-메시지-설정해보기-852a9af23b96 [iOS Swift] FCM(Firebase Cloud Messaging), Push 메시지 설정해보기 파이어베이스 클라우드 메시징을 이용해서 푸시를 보내는 방법은 알고는 있지만, 제가 직접 해본 적은 없었네요.. medium.com https://faith-developer.tistory.com/156 FCM Notification 구현해보자 iOS에서 GCM으로 푸시 하는 방법에 이어서 FCM으로 Notification 구현해 보겠습니다. 먼저는 FCM 이 무엇인지 알아야겠지요? FCM 은 Firebase Cloud Messa..
https://github.com/navermaps/ios-map-sdk/issues/1 Error NMapsMap 3.3.0 · Issue #1 · navermaps/ios-map-sdk SDK를 3.3.0으로 업데이트한 이후로 에러가 발생 합니다. 비트코드를 적용하셨다는 이슈에 답변을 보고 제 앱 타겟에 비트코드를 적용해도 똑같은 에러가 발생 합니다. 개발자 커뮤니티에서도 동일한 에러가 발생한다는 분이 계셨습니다. 현재는 pod에서 강제로 3.2.1버전으로 다운그레이드하여 사용 중 입니다. github.com 왜 안될까 한참 헤맸다 더구나 같은 프로젝트를 클론해서 pod install 했는데, 어떤 사람은 되고 어떤 사람은 안되서 더욱더 혼란스러웟다!! 안된 이유는 git-lfs 설정을 안했기 때문이..
_ = publisher.assign(to: \.value, on: object) 이런식으로 쓰던데.... \.value는 처음 보는 문법이었다. \.은 무슨 의미일까? https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#grammar_key-path-expression Expressions — The Swift Programming Language (Swift 5.1) Expressions In Swift, there are four kinds of expressions: prefix expressions, binary expressions, primary expressions, and postfix expressions. Evalua..
클로저에 대해서는 잘 알고 있다. 그럼 탈출 클로저는 무엇일까? 아무도 몰랐겠지만, @noescape을 명시적으로 써주지 않았어도, 디폴트 설정은 @noescape였다. 함수의 인자로 쓰이는 클로저는, 여느 함수 인자들처럼 함수 안에서만 접근이 가능했다. 하지만 @escaping을 써주게 된다면?!?!!? 함수의 외부에서도 클로저에 대해 접근할 수 있어진다. var completionHandlers: [()->Void] = [] func someFunction(closure: @escaping ()-> Void ) { completionHandlers.append(closure) } 결론: escaping 클로저는 변수로 받은 클로저를 다른 변수에 저장해놓고, 나중에 콜 할 수 있다는 점에서 의의가 있다..
https://gogorchg.tistory.com/entry/iOS-Archives-보기 [iOS] Archives 보기 archive 시켰던(iTunes connect에 업로드를 시키기 위해) 목록을 볼려면 어디로 가면 될까요? XCode 상단 메뉴중 Window -> Organizer (3번째 탭)를 눌러 주세요~ 그럼 상단에 Archives 탭이 있는 창이 뜰 겁니다... gogorchg.tistory.com window > organizer