반응형 전체 글1583 커스텀 프로퍼티 리스트를 이용한 데이터 처리 방법(예제코드) 아이폰 앱 개발이다 보니 핵심적인 부분은 코코아 터치 기반 기술들을 사용하는 것에는 스위프트나 오브젝티브-C나 같다. 다만 언어적 구현 기법에 차이가 있을 뿐이다. 일부 예외는 있겠지만. 2010년부터 아이폰을 개발해오면서 숱하게 헛탕질하고 시행착오를 거쳐 습득된 기술들이 머리속에 있어 장문의 책 내용을 꼼꼼하게 읽을 필요까지는 없었다. 다만 알고 있는 기술을 어떤 방식으로 스위프트에서 사용해야하나가 궁금하다. pList파일을 사용하는 예제 코드를 옮겨 둘까 한다. 핵심은 documentDirectory와 path, write toFile등일 것 같다. import Foundation //1단계 : data.plist 파일을 읽어 온다. let paths = NSSearchPathForDirectorie.. 2018. 3. 7. 영덕 피데기, 해안도로 드라이브! 영덕 피데기, 해안도로 드라이브! 포항을 떠나 영덕으로 진입하는 시점부터 동해안 가장 가장자리 국도(해안도로)를 타고 드라이브를 시작했다. 인터넷 검색으로 '피데기'를 찾아 보니 딱히 지식백과에는 없다. 어학사전에는 반건조한 오징어를 일컫는 경상도 사투리로 정의 되어 있다. 해안가 방풍림으로 조성된 소나무를 가림막으로 도로가에 오징어 건조장이 길게 늘어서 있다. 운전대를 잡은 사람들의 흔한 속성?이 "어 저기 있다!" 하고는 그냥 지나치길 잘한다는 것이다. 그래서 지나고 나면 돌아가기 힘들고.. 그래서 요즘은 생각이 나면 바로 정차를 해서 결정을 하는 버릇이 생겼다. 갓길에 차를 세우고 잠시 반 건조중인 오징어를 구경하다 한 팩에 만원. 여섯마리(6)를 준다길래 구입을 했다. 카드환영이라고 하길래 ..... 2018. 3. 7. UIView.animate with Swift Code 스위프트에서 UIView 애니메이션 관련 샘플 코드를 포스팅 한다. 맥락만 이해한다면 오브젝티브-C와 크게 다르지 않으므로 응용해서 애니메이션을 사용할 수 있을 듯 하다. 본 예제는 책의 사이드 메뉴를 만들때 좌에서 우로 우에서 좌로 나오고 들어가는 애니메이션에 대한 코드다. let options = UIViewAnimationOptions([.curveEaseInOut, .beginFromCurrentState]) UIView.animate( withDuration: TimeInterval(self.SLID_TIME), delay: TimeInterval(0), options: options, animations: { self.contentVC?.view.frame = CGRect(x: 0, y: 0,.. 2018. 3. 6. Swift프로젝트에 Objective-C클래스 사용하기(브릿징헤더:Bridging Header) Swift프로젝트에서 Objective-C로 짜여진 클래스를 가져다 사용할 경우 사용되는 브릿징 헤더 파일에 대한 이야기이다. 실습을 해보면서 보니 사이드 바 메뉴 구현에서는 따로 구현하지 않고 Objective-C로 구현된 클래스를 넣어 사용하는데 흥미로운 주재이다. Swift와 Objective-C를 교차 사용하는 방법에 대한 설명이다. Create Bridging Header를 선택하면 브릿징헤더 파일이 생긴다. 이 파일은 오브젝티브-C에서 정의된 객체를 스위프트 아키텍처가 참조할 수 있도록 중간에 다를 놓아주는 역할을 한다. 그래서 파일의 이름에 브릿지(Bridge)라는 단어가 붙어 있고 이 파일의 형식이 헤더 파일(*.h)이기 때문에 둘을 합쳐 브릿징 헤더 파일이라고 부르게 되었다고 한다. 파일.. 2018. 3. 6. navigationController navigationBar숨기기 책을 보며 따라하기를 하는 중이다. 원래 이런게 이렇게 간단한 거였나? 하는 생각이 자주 든다. 내가 너무 익숙한 코드만 가지고 개발을 해 왔던것인지 아님 관심이 없었던 것인지... 이번에는 네비게이션 컨트롤의 네비게이션바를 숨기는 애니메이션 코드다. 간단하게 처리가 가능하니 응용해서 사용하면 좋을 것 같다. override func touchesEnded(_ touches: Set, with event: UIEvent?) { let bar = self.navigationController?.navigationBar; let ts = TimeInterval(0.3) UIView.animate(withDuration: ts) { bar?.alpha = ( bar?.alpha == 0 ? 1 : 0 ) } } 2018. 3. 6. ?? Nil 병합 연산자 무심결에 본 ?? 연산자. 딱 내가 좋아하는 타입이다. '??' 연산자는 Nil 병합 연산자로서 보통 연산자 앞쪽에 옵셔널 타입의 값이, 뒤쪽에는 이를 대체할 일반 타입의 값을 취한다. 연산자 앞에 작성된 옵셔널 타입의 값이 nil일 경우 연사자 뒤쪽에 있는 값을 사용하고, 그렇지 않다면 연산자의 앞쪽의 옵셔널 값을 해제하여 사용한다는 의미로 이해하면 된다. //logging @objc func logging(_ sender: UIButton) { switch self.logType { case .basic: // NSLog("버튼이 클릭되었습니다.") case .title: let btnTitle = sender.titleLabel?.text ?? "타이틀 없는" //Nil 병합연산자. NSLog("\.. 2018. 3. 6. 이전 1 ··· 184 185 186 187 188 189 190 ··· 264 다음 반응형