본문 바로가기

Swift19

swift http 통신 get방식 post 방식 - 일단 기록 // // ShowBibleVC.swift // JooBo // // Created by MacBookPro on 2018. 6. 12.. // Copyright © 2018년 MacBookPro. All rights reserved. // import UIKit class ShowBibleVC: UIViewController { // let commentTextView: UITextView = { let textView = UITextView() textView.backgroundColor = UIColor(red:0.92, green:0.92, blue:0.92, alpha:1.0) textView.translatesAutoresizingMaskIntoConstraints = false textVie.. 2018. 6. 13.
스위프트로 배우는 블록체인 - 채굴구현 스위프트로 배우는 블록체인 - 채굴구현 먼저 이전전 포스팅에서 다루었던 BlockChainSwift.playground를 vapor프로젝트에 App -> Model 안에 model.swift 라는 이름으로 새로 파일을 만들어서 복붙해준다. //// models.swift// App//// Created by MacBookPro on 2018. 5. 30..//import Vaporimport Foundationimport Cocoa //거래가 발생할때 거래 타입 선택 가능enum TransactionType : String, Codable{ case domestic case international} // 스마트 컨트랙드 프로토콜 함수 - 지원,신청하는 계약임protocol SmartContract{ f.. 2018. 6. 2.
ios 지도 mkmap 2 ios 지도 mkmap 2 위도와 경로 좌표를 이용해서 해당 주소 데이터를 찾는 방법을 알아본다. 먼저 앞의 포스팅에는 주소를 이용해서 미국 캘리포니아에 있는 애플의 위도와 경도를 구했다. 그 데이터를 이용해서 이번엔 주소를 찾아본다. 코드는 아래와 같다. 간단하다. //역방향 지오코딩 let geoCoder = CLGeocoder() //cllocatoin객체는 위도와 경로 좌표로 초기화 let newLocation = CLLocation(latitude: 37.3316833, longitude: -122.0301031) //geoCoder에 reverseGeocodeLocation 메서드로 전달 된다. geoCoder.reverseGeocodeLocation(newLocation, completion.. 2018. 5. 16.
Ios AutoLayout 7 - AutoLayout Landscape 이슈 Ios AutoLayout 7 - AutoLayout Landscape 이슈● 들어가기 전이번 포스팅에서는 Landscape을 했을때 발생하는 AutoLayout 이슈에 대해서 살펴보자. 글로 쓰는 것보다 사진을 바로 보자.대충 이런 현상이다. 세로였을때 바로 나오다가 Landscape했을 때 위와 같이 두 페이지가 반반 씩 동시에 나오는 이슈가 발생한다. viewWillTransition 함수를 override 해서 해결해보자.● 실습순서1.viewWillTransition 함수 override2.소스코드 리팩토링● viewWillTransition 함수아래의 viewWillTransitoin 함수는 view가 바뀔때 작동되는 함수다. 아래의 코드를 SwipingController 제일 윗 부분에 작성.. 2018. 5. 8.
Ios AutoLayout 6 - UIButton 이벤트와 UIPageControl속성 Ios AutoLayout 6 - UIButton 이벤트와 UIPageControl속성 ● 들어가기 전이번 포스팅에서는 이전 포스팅에서 만들었던 UIButton에 이벤트를 걸어서 "이전버튼"을 누르면 이전페이지로 이동시키고, "다음버튼"을 누르면 다음 버튼으로 이동시키는 코드를 작성해보자. 그리고 페이지가 이동할때 UIPageControl의 현재페이지를 보여주는 색깔점 표시도 변경시켜보자.● 실습순서1. ViewController.swift에 있는 UIButton객체와 UIPageControl객체와 autolayout을 설정한 함수 가져오기2. 버튼에 이벤트 걸어주기3.pageControl 설정4.scrollViewWillEndDragging 함수 구현● ViewController에 있는 객체들과 aut.. 2018. 5. 7.
Ios AutoLayout 5 - MVC 패턴 Ios AutoLayout 4 - MVC 패턴 ● 들어가기 전이번 포스팅에서는 mvc 패턴에 대해서 살펴보겠다. mvc 패턴은 아주아주 간단하게 말해서 어플리케이션을 만들때, m 모델단, v 화면단, c 컨트롤단으로 구분지어서 소스코드를 제작하는 방법이다. 반드시는 아니지만 굳이 구분을 하자면 프론트 엔드 즉, 디자이너는 v 부분 소스코드를 짜고, 개발자는 c 부분 소스코드를 짜고, db모델러는 m 부분을 담당한다.(쉽게 설명해서) 이러는 이유는 앞에서도 설명했는데, 페이지 하나에 화면소스, 컨트롤소스, 모델 소스를 짜버리면 나중에 유지보수하기가 힘들고 개발할때도 복잡해서 효율성이 떨어지기 때문이다. 아주 간단하게 설명하면 이렇다. 그렇다면 ios에서 mvc가 어떻게 활용되는지 보자. ● 실습순서1.모델.. 2018. 5. 6.
[ios 팁] could not launch 자신의 아이폰에서 앱 구동할때 오류 [ios 팁] could not launch 자신의 아이폰에서 앱 구동할때 오류 ios개발할 때 가끔씩 simulator에서 말고 직접 자신의 폰에서 앱을 구동해 보고 싶을 때가 있다. 이 포스팅에서는 자신의 아이폰에서 앱을 구동하는 사전 설정 부분은 다루지 않는다. 사전 설정이 끝났는데도 불구하고 아이폰을 mac에 연결후 xcode에서 run 버튼을 누르면 가끔씩 발생하는 could not launch.... 이 문구가 뜰때 어떻게 처리를 해야할지 해결방법을 포스팅 한다. ▲ 무슨 뜻인지 몰라도 이런 메시지가 뜬다면..대충 너의 앱을 실행 할 수 없다 그러니깐 아래 경로로 들어가서 설정을 해줘라 라는 뜻~ ▲ 아이폰에서도 비슷한 오류가 뜬다. 신뢰할 수 없는 개발자라고 하는데 그럼 신뢰를 해주도록하자... 2018. 5. 5.
Ios AutoLayout 4 -UICollectionViewController 활용 Ios AutoLayout 4 -UICollectionViewController 활용 ● 들어가기 전이번포스팅에서는 UICollectionViewController를 이용해서 페이지를 좌우로 넘겨주는 기능을 살펴보자.● 실습순서1.rootview를 UICollectionViewController를 상속받는 클래스로 지정해주기2. UICollectionViewController를 상속받는 클래스 지정3. UICollectionViewController의 Cell을 꾸며줄 Customcell 만들기4.ViewController에 있던 소스 UICollectionViewController를 상속받는 클래스로 옮기기 ● rootview 지정해주기AppDelegate파일로 들어와서 window 객체를 초기화 하는.. 2018. 5. 5.
[ios 팁] swift 두 가지 함수로 현재 날짜 구하기 DateFormatter와 Calendar swift 두 가지 함수로 현재 날짜 구하기 DateFormatter와 Calendar 개발을 하다보면 시간을 표시해야 할 일이 종종 생긴다. 날짜와 시간을 구하는 방법은 다양하다. 정말 무척이나 다양하다! 이번 포스팅에서는 DateFormatter 와 Calendar를 이용해서 날짜와 시간을 구하는 예제를 살펴보자. 1. DateFormatter 예제 func getCurrentDateTime(){ let formatter = DateFormatter() //객체 생성 formatter.dateStyle = .long formatter.timeStyle = .medium formatter.dateFormat = "MMMM,dd yyyy" //데이터 포멧 설정 let str = formatter.stri.. 2018. 5. 4.
Ios AutoLayout 2 - ContainerView와 NSMutableAttributedString Ios AutoLayout 2 - ContainerView와 NSMutableAttributedString ● 들어가기 전지난번 포스팅에서는 오토레이아웃으로 만들 간단한 프로젝트에 대한 소개를 했다. 이번 포스팅에서는 간단한 이슈가 나오는데 ContainerView와 NSMutableAttributedString을 이용해서 해결하는 과정을 포스팅 해보겠다. 부모 View를 만들어서 그안에 image view를 넣어 오토레이아웃을 지정해 줄것이다. 그리고 그림 아래 text는 NSMutableAttributedString 속성을 통해 작성할것이다. 이슈는 아래와 같다. 아이폰을 옆으로 기울이면 그림만 보이고 글은 아래로 숨어 버린다. 이 이슈를 부모 containerview를 이용해서 해결해보자.● 실습순.. 2018. 5. 3.
10. 옵셔널 10. 옵셔널 //: Playground - noun: a place where people can play//값이 있을 수도 있고 없을 수도 있음을 나타낸다.//변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없다.(변수 또는 상수의 값이 nil일 수도 있다.)import UIKit //1var myName: String = "kim do do"//오류 nil은 String 타입에 할당 될 수 없다.//myName = nil //2//nil은 옵셔널로 선언된 곳에서만 사용될 수 있다.//옵셔널 변수의 선언 및 nil 할당var yourName: String? = "kang do"print(yourName) //Optional("kang do")yourName = nilprint(yourName) //.. 2017. 12. 4.
5 사진 확대 축소 변경 //// ViewController.swift// imageView//// Created by MacBookPro on 2017. 11. 20..// Copyright © 2017년 MacBookPro. All rights reserved.// import UIKit class ViewController: UIViewController { var isZoom = false //확대여부를 나타내는 변수 var imgOn: UIImage? //켜진 전구 이미지가 있는 uiimage타입변수 var imgOff: UIImage? //꺼진 전구 이미지가 있는 uiimage타입변수 //이미지뷰에 대한 아웃렛 변수 @IBOutlet weak var imageView: UIImageView! //버튼에 대한 아웃렛 변.. 2017. 11. 20.
2 레이아웃 //// ViewController.swift// layout2//// Created by MacBookPro on 2017. 11. 16..// Copyright © 2017년 MacBookPro. All rights reserved.// import UIKit class ViewController: UIViewController { // view 객체? 만들기 let view_1 = UIView() let view_2 = UIView() let view_3 = UIView() let view_4 = UIView() let view_5 = UIView() override func viewDidLoad() { super.viewDidLoad() //메인 view에 집어 넣기 view.addSubview(.. 2017. 11. 17.
1 레이아웃 28910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017.. 2017. 11. 16.
9. 연산자의 종류 // 할당연산자 = // 산술 연산자 + - * / % //비교연산자 // 참조 비교 연산자let valueA: Int = 3let valueB: Int = 5let valueC: Int = 5class SomeClass{} //let isSameValue: Bool = valueA == valueB // falselet isSameValue: Bool = valueB == valueC // true print(isSameValue) let referenceA: SomeClass = SomeClass() let referenceB: SomeClass = SomeClass() let referenceC: SomeClass = referenceA let isSameReferenceAB: Bool = refe.. 2017. 11. 15.
8. 열거형 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146//열거형 : 열거형은 연관된 항목들을 묶어서 표현할 수 있다.// 배열이나 딕셔너리 같은 타입과 다르게 프로그래머가 정의.. 2017. 11. 15.
7. 튜플 배열 딕셔너리 셋 (복습) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816.. 2017. 11. 14.
3.기본 데이터 타입 Any AnyObject nil 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 3 기본 데이터 타입 //Bool, Int, UInt, Float, Double, Character, String // Bool var someBool: Bool = true someBool = false //someBool = 0 오류, Int 타입 넣을 수 없다. //someBool = 1 오류 //Int var someInt: Int = -100 //someInt = 100.1 오류, Double타입의 데이터를 넣어서 오류 //UInt 양의 정수 타입 var someUInt: UInt = 1.. 2017. 11. 8.
2. 상수, 변수 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 2상수, 변수 import Swift //상수, 변수의 선언 // 상수 선언 키워드 let // 변수 선언 키워드 var //상수의 선언 // let 이름: 타입 = 값 //변수의 선언 //var 이름: 타입 = 값 //값의 타입이 명확하다면 타입은 생략 가능 // let 이름 = 값 // let 이름 = 값 let constant: String = "차후에 변경이 불가능한 상수 let" var variable: String = "차후에 변경이 가능한 변수 var" variable = "변수는 이렇게 차후에 다른 값을 할당할.. 2017. 11. 7.