Programing Language
-
(Swift) lazy 변수형 사용 방법Programing Language/Swift 2019. 10. 25. 12:04
애플에 공식문서는 다음과 같이 lazy 변수형 대해 설명하고 있다. "A lazy stored property is a property whose initial value is not calculated until the first time it is used" 리스트로 예를 들어 설명하면 리스트의 0번째 value가 읽히기 전까지는 메모리에 그 값을 할당시키기 않는다는 말이다. 다른 예 인스타그램을 예로 들어보도록 하겠습니다. 인스타그램을 실행시키면 가장 상단에 본인의 팔로워들의 아이콘들이 존재하고 이 아이콘을 클릭하면 해당 유저가 올린 스토리 영상을 확인할 수 있습니다. 여러분이 인스타그램을 실행시켰을 때 이러한 영상들도 모두 서버로부터 가져오는 작업을 할까요? 만일 여러분이 어플리케이션을 실행하는 ..
-
(iOS) UIImageView에 url 로 이미지 넣기Programing Language/iOS(Swift) 2019. 10. 24. 00:05
스토리 보드에서 imageView를 위치시키고 코드로 IBOutlet 시킨후에 do...catch 문으로 url를 Data화 시키는 상수와 그 데이터를 이미지 뷰에 넣은 함수를 입력한다. class ImageAnimationViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() let url = URL(string: "https://static.independent.co.uk/s3fs-public/thumbnails/image/2017/09/12/11/naturo-monkey-selfie.jpg?w968h681") do { let d..
-
(iOS) 화면간 데이터 전송 방법Programing Language/iOS(Swift) 2019. 10. 17. 18:01
ViewController(A) 에서 -> page2(B)로의 데이터 이동 1. Segue화면 전환 방법으로 데이터 전송방법 A->B ViewController(A) 클래스 class ViewController: UIViewController { @IBOutlet weak var input_name: UITextField! var name_text : String = "" @IBAction func move_page2btn(_ sender: Any) { //segue를 이용한 데이터 전달 var final_name = "" viewController.final_name = name_text //여기서 as는 자바에서 class에 상속(extent)과 같은 개념이다. // } } 2. 코드 화면 전환으로 ..
-
(iOS) ViewController 화면 전환 방법Programing Language/iOS(Swift) 2019. 10. 17. 14:18
뷰 컨트롤러 직접 호출에 의한 화면 전환 현재의 뷰 컨트롤러에서 이동할 대상 뷰 컨트롤러를 직접 호출해서 화면에 표시한다. Presentation 방식이라고 부르기도한다. - 화면 전환은 *비동기 방식*으로 전환되기 때문에 화면 전환이 끝나기 전에 다음 코드를 실행한다. 따라서 위 메서드를 이용해야 한다. - 비동기 방식 : 하나의 처리가 끝나기를 기다리지 않고 다음 작업을 바로 이어서 수행하는 방식을 비동기 방식이라고 부른다. - *present 메서드*를 이용한 화면 전환은 기존 뷰 컨트롤러를 유지한 채, 그 위에 새로운 뷰 컨트롤러의 화면을 덮는 방식이다. - dismiss 메서드에 의해서 걷어내진 viewcontroller화면은 운영체제에 의해 곧 메모리에서 해제된다. - dismiss 메서드를 ..
-
(Swift) 클래스,구조체/ 열거형 차이Programing Language/Swift 2019. 10. 15. 22:40
- 예시 코드 struct ValueType { var property = 1 } class ReferenceType { var property = 1 } // 첫 번째 구조체 인스턴스 let firstStructInstance = ValueType() // 두 번째 구조체 인스턴스에 첫 번째 인스턴스 값 복사 var secondStructInstance = firstStructInstance // 두 번째 구조체 인스턴스 프로퍼티 값 수정 secondStructInstance.property = 2 // 두 번째 구조체 인스턴스는 첫 번째 구조체를 똑같이 복사한 // 별도의 인스턴스이기 때문에 // 두 번째 구조체 인스턴스의 프로퍼티 값을 변경해도 // 첫 번째 구조체 인스턴스의 프로퍼티 값에는 영향이..
-
(Swift) 구조체 정리Programing Language/Swift 2019. 10. 10. 14:09
1. 구조체란? 스위프트 대부분 타입은 구조체로 이루어져 있습니다. 구조체는 값(value) 타입입니다. 타입이름은 대문자 카멜케이스를 사용하여 정의합니다. 2. 구조체 문법 구조체 정의 : "struct" 키워드 사용 struct Sample { // 가변 프로퍼티(값 변경 가능) var mutableProperty: Int = 100 // 불변 프로퍼티(값 변경 불가능) let immutableProperty: Int = 100 // 타입 프로퍼티(static 키워드 사용 : 타입 자체가 사용하는 프로퍼티) static var typeProperty: Int = 100 // 인스턴스 메서드(인스턴스가 사용하는 메서드) func instanceMethod() { print("instance method..
-
(Swift) 옵셔녈[Optional] 정리 2/2Programing Language/Swift 2019. 10. 10. 12:23
1. 옵셔널 추출이란? 옵셔널에 들어있는 값을 사용하기 위해 꺼내오는 것 2. 옵셔널 방식 옵셔널 바인딩 1. nil 체크 + 안전한 추출 2. 옵셔널 안에 값이 들어있는지 확인하고 값이 있으면 값을 꺼내옵니다. 3. if-let 방식 사용 func printName(_ name: String) { print(name) } // 함수를 선언할때 _ 문자를 넣게 되면 나중에 그 함수를 불러올때 변수명을 적어 주지 않아도 된다. var myName: String? = nil //printName(myName) //(만약 func printName(_ name: String) { print(name)} 에서 _을 넣지 않았따면) //printName(name : myName) 이라고 적어야한다. // 전달되는..
-
(Swift) 옵셔녈[Optional] 정리 1/2Programing Language/Swift 2019. 10. 10. 12:04
1. 옵셔널이란?? 값이 있을 수도, 없을 수도 있음을 표현 nil이 할당 될 수 있는지 없는지 표현 // someOptionalParm에 nil이 할당 될 수 있다. func someFunction(someOptionalParam: Int?) { // .... } /// someOptionalParm에 nil이 할당 될 수 없다. func someFunction(someOptionalParam: Int) { // .... } someFunction(someOptionalParam: nil) // someFunction(someParam: nil)