모바일 앱개발204 ios 소켓통신에 대하여 0. 서론 오늘 몇시간을 소켓통신에 대하여 조사를 했는데 생각보다 많은 자료를 찾지는 못했다. 한번 다시 정리해야할 자료이므로 참고 부탁드립니다. 한번 쭉 읽어보셔도 좋을 거에요 1. 선행지식 📌 📌 2. 개념 소켓이란 정규 유닉스 파일 기술자를 이용하여 다른 프로그램과 정보를 교환하는 방법 용어 설명 유닉스는 운영체제 중 하나입니다. 유닉스에서는 모든 것이 파일로 존재하게 됩니다. 그리고 소켓도 유닉스에서 파일 로 취급받습니다. 모든 유닉스 프로그램은 파일 기술자(File Descriptor) 라는 것을 통해서 입출력(read, write)을 실행합니다. 파일 기술자는 열린 파일을 의미하는 인덱스 번호입니다. 비슷한 맥락으로 **소켓 기술자(Socket Descriptor)**는 소켓을 만들고 얻은 파.. 2022. 4. 20. WKWebView에서 보내는 JS를 캐치하는 방법 웹에서 보내는 javascript를 캐치하려면 미리 등록을 해야한다. 이때 javascript를 보낼때 message에 javascript를 보내고 body값을 함께 NSDictionary (JSON) 형태로 보내주면 그걸 파싱해서 받을 수 있다. // MARK: - WKScriptMessageHandler extension MainViewController: WKScriptMessageHandler { /// message name: javascript 명 /// 이렇게 사용하려면 javascript 명을 미리 등록을 해야한다. func userContentController(_ userContentController: WKUserContentController, didReceive message: W.. 2022. 4. 15. WKWebView 기본메서드 와 Delegate메서드 [WKUIDelegate,WKUIDelegate] WKWebView에서 자주 사용하는 기본메서드 load( _: ) HTML 파일을 읽어들일 때 사용. 쉽게 말해 웹페이지를 로드한다고 생각을 하시면 될 거 같습니다. 비동기 메서드라 동시에 다른 로직을 처리할 수 있어 앱이 자연스럽게 진행이 되어가는 장점이 있습니다. func load(_ request: URLRequest) -> WKNavigation? loadHTMLString(_:baseURL:) 말 그대로 HTMLString을 읽어오는 메서드로 직접 웹페이지를 로드해서 웹페이지로 이동을 하거나 개발자가 만든 URL로 이동하게 함 첫 번째불러올 웹페이지 url을 읽어오는 것입니다. 두 번째relative URL을 해결할 때 사용되는 기본 URL func loadHTMLString(_ string: .. 2022. 4. 14. mutating 과 구조체 참고: https://velog.io/@wook4506/iOS-Swift-Swift-문법을-알아보자-18편-mutating Class && Struct && Enum 미완 enum추가 기존 글에서 클래스는 참조타입이고 구조체와 열거형은 값 타입이라고 정리를 했다. 그래서 값타입인 구조체에서는 인스턴스 메소드 내에서 프로퍼티들을 수정할 수 없게 되어있다. 때문에 이 프로퍼티들을 구조체 안에 있는 메소드에서 수정을 하려면 mutating이라는 키워드를 사용해야한다. mutating 특정 메소드 내에서 구조체 또는 열거형의 프로퍼티를 수정해야하는 경우, 해당 메소드의 동작을 변경하도록 하는 것 예시를 보면 Person이라는 구조체에서 init을 통해 초기화를 해주어서 완벽한 코드처럼 보이지만 에러가 발생한다... 2022. 4. 13. [ios] shortening unwrapping 쇼트닝 언래핑 swift5.7 Swift 5.7에서 반영될 Unwrapping과정 번역: https://betterprogramming.pub/swift-5-7-unwrapping-optionals-gets-improvement-be81c578e9fa 현재 Xcode 13.3에서 지원안함 Shadowing이란 옵셔널 x를 풀었을 때 동일한 값을 포함하는 x라는 이름의 새 상수를 만들었고 이제 옵셔널 변수 대신 이 상수를 사용합니다. var x: Int? if let x = x { // do something with the new x } 이러한 작업을 shadowing 이라고 합니다. 📌섀도잉은 좋은걸까? 셰도잉에는 몇가지 단점이 있습니다. 현실적인 상황에서는 변수가 훨씬 긴경우가 많다. var lastTimeUserEnteredTh.. 2022. 4. 12. MyWebBrowser프로젝트를 통한 웹뷰 뜯어먹기 일단 앞으로 여러가지 기능을 앞으로 구현하기위해 간단하게 기능을 추가해보려고 한다. 그리고 편의상 모든 포스팅은 편의 말투로 작성합니당 프로젝트생성 프로젝트는 원하는 폴더에 생성합니다. 세팅 sceneDelegate는 사용하지 않을 예정이기 때문에 아래 세가지 작업을 진행한다. - SceneDelegate.swift 파일 삭제 - AppDelegate var window: UIWindow! 입력 AppDelegate에 있는 UISceneSession과 관련된 두 메소드 삭제 info.plist에 등록된 Application Scene Manifest 삭제 -> 삭제 안할경우 AppDelegate에 정상작동을 안해요 iOS13을 지원하게 된 이후부터 프로젝트엔 자동으로 SceneDelegate가 세팅되어있.. 2022. 4. 8. 얼럿 addAction 한번에 추가하기 여러개의 Action을 한번에 추가하기 콜렉션의 사용법중 forEach와 for in 이 있다. for in 은 모든 요소의 갯수만큼 반복하지만 for each는 클로저를 파라미터로 주고 요소 갯수만큼 반복한다. For - each는 반복 실행하려는 코드를 파라미터로 받고, 저장된 요소는 클로저 상수로 전달된다 for - in문은 우리가 직접 구현하는 "반복문" 하지만 forEach는 내가 반복하고 싶은 구문을 forEach라는 함수의 파라미터로 "클로저"로 작성해서 넘겨주는 것 그렇기 때문에, 반복문 안에서만 사용할 수 있는 continue, break는 for - in 에선 사용 가능하지만, forEach에서는 불가능하다. 내가 전달한 print 함수를 찍는 클로저를 nums 요소의 갯수(4)만큼 반.. 2022. 4. 4. 네비게이션 컨트롤러 NavigationController 사용하기 NavigationController 네비게이션 컨트롤러는 ViewController의 타입 중 Container ViewController Type에 속한다. 이 컨테이너 뷰컨트롤러에는 TabBar ViewController또한 포함된다. ViewController Type ViewController는 두가지 타입이 존재한다. Content ViewController Type: Container ViewController Type: NavigationViewController / TabBarViewController 처럼 여러개의 ViewController를 제어하는 ViewController 네비게이션 인터페이스 아래 그림은 iOS에서 정말 많이 사용하는 인터페이스이다. 주로 계층적 구조의 화면전환을.. 2022. 3. 26. [Gesture Recognizer] Long Press [Gesture Recognizer] Long Press 서론 핸드폰에서 지원하는 제스쳐란 그냥 단순하게 화면을 터치할 수도 있고, 길게 누를수도 있고, 두손가락으로 확대할 수 도 있고, 화면도 넘길 수 있다. Declaration @MainActor class UILongPressGestureRecognizer : [UIGestureRecognizer](https://developer.apple.com/documentation/uikit/uigesturerecognizer) Overview [UIGestureRecognizer](https://developer.apple.com/documentation/uikit/uigesturerecognizer)의 하위 클래스이다. 사용자는 작업이 트리거되기전에 뷰.. 2022. 3. 25. TIL220324_에러처리 Do try catch TIL220324_DoTryCatch Category: isGrammer Langu: Swift Tag: API, JSON isGrammer: No isOK: No isPosted: No isRad: No isRead: No isSecret: No 공부날짜: 2022년 3월 24일 생성일시: 2022년 2월 25일 오후 3:59 선행지식: Codable, EscapeClosure, HTTP, OptionalBinding, URLSession 최종편집: 2022년 3월 24일 오후 4:59 추가개념?: No 환경: Xcode 서론 선행 지식 오류처리의 과정 오류 처리에는 다음 세 가지 과정이 필요합니다. 오류의 종류 정의하기 발생한 오류 던지기 던진 오류 처리하기 1. 오류의 종류 정의하기 (선택사항) .. 2022. 3. 24. 이전 1 ··· 4 5 6 7 8 9 10 ··· 21 다음 반응형