하루에 0.01%라도 성장하자
반응형

Develop/iOS 20

Swift 프로퍼티 (Property)

프로퍼티의 종류 인스턴스 저장 프로퍼티 타입 저장 프로퍼티 인스턴스 연산 프로퍼티 타입 연산 프로퍼티 지연 저장 프로퍼티 프로퍼티의 정의 연산 프로퍼티는 var로만 선언할 수 있다. ( 연산인데 상수로 선언 하는게 이상하긴 함..; ) 연산 프로퍼티는 읽기전용으로는 구현할 수 있지만 쓰기전용으로는 구현할 수 없음. set블럭에서는 암시적으로 newValue를 사용할 수 있다. 코드로 공부하자! struct SampleStruct{ // 인스턴스 저장 프로퍼티 var name : String = "뚠님"; var age : Int = 10; // 인스턴스 연산 프로퍼티 var anotherAge : Int { get { // 호출했을 때 실행되는 구문. get으로 선언한다. return age - 1; }..

Develop/iOS 2019.05.09

Swift 클래스 와 구조체 ( Reference and Value )

이번에는 클래스(Class)와 구조체, 열거형(Struct, enum)을 비교해 보겠다. 클래스(Class) 클래스는 참조타입(Reference Type) 이면서 상속이 가능하다. 구조체(Struct) 구조체는 값 타입(Value Type)이면서 상속이 불가능하다. 열거형(enum) 열거형은 값 타입(Value Type)이면서 상속이 불가능하다. Reference and Value? Reference 데이터를 전달할 때 값의 메모리 위치를 전달. Value 데이터를 전달할 때 값을 복사하여 전달 코드로 알아보자~! Struct ValueType{ var tempVar = 1; } class ReferenceType{ var tempVar = 1; } //Value Type var firstVar = Va..

Develop/iOS 2019.05.09

Swift 열거형 (enum)

열거형은 대체로 다른언어에서 많이 사용되지 않지만, Swift에서는 많이 사용된다고 한다. 또한 Swift만의 특징이 있다고 한다! enum Weekday { case mon case tue case wed case thu, fri, sat, sun } var day : WeekDay = WeekDay.wed; day = .tue; // enum의 모든 요소를 구현하면 default가 필요 없다. // 하나라도 빠지면 default가 필요하다 ( 컴파일러 에러 발생 ) switch day { case .mon : print("mon"); case .tue : print("tue"); case WeekDay.fri : print("fri"); case .wed, .thu, .sat, .sun : print..

Develop/iOS 2019.05.08

Swift 구조체 (Struct)

Swift는 대부분의 타입이 구조체로 이루어져 있다. 구조체 (Struct) 구조체는 값(Value)타입이다. //구조체 선언 struct Sample { var tempVar1 : Int = 100; let tempVar2 : Int = 10; static var typeVar : Int = 200; // 타입 프로퍼티 func sampleFunc(){ print("Sample"); } static func sampleTypeFunc(){ // 타입 메소드 print("Type Func"); } } //구조체 사용 var tempStruct : Sample = Sample(); // 구조체 생성 tempStruct.tempVar1 = 300; // 300으로 변경. Sample.sampleTypeFun..

Develop/iOS 2019.05.08

Swift 옵셔널(Optional)

Swift의 핵심이라고 할 수 있는 옵셔널(Optional)이다. ( 이게 왜 핵심인지 나는 아직 잘 모르겠다... ㅋㅋ ) 옵셔널(Optional) 값이 있을수도, 없을 수도 있음을 표현함. nil이 할당될 수 있는지 표현 [ 옵셔널의 형태 ] enum Optional : ExpressibleByNilLiteral{ case none case some(Wrapped) } 옵셔널을 쓰는 이유 명시적 표현 nil의 가능성을 코드만으로 표현이 가능하다. ( 문서에 null가능 여부를 별도로 쓸 필요가 없다. ) 따라서 문서/주석 작성 시간 절약. 안전한 사용 전달 받은 값이 옵셔널이 아니라면 nil체크 없이 사용 가능 ( nil일 수가 없기 때문에 ) 예외 상황을 최소화 하는 귀찮지만 안전한 코딩 효율적 코..

Develop/iOS 2019.05.08

Swift 반복문

보편적 언어들의 반복문은 크게 세가지다 for while do - while Swift도 크게 다르지 않다. 다만 단어가 다를뿐 for while repeat - while for 우선 기본적으로 foreach문과 비슷한 문법을 가진다. let integers = [1,2,3]; for item in integers { print(item); // integers 배열안에 있는 item이 차례로 들어와 출력된다. } //Dictionary 일 경우에 아래와 같이 사용한다. for (name, age ) in people { print("\(name) : \(age)"); } 우리가 일반적으로 사용하던 방법은 Swift에서는 동작되지 않으며 아래와 같이 사용해야 한다. [ JAVA ] for(int i=0..

Develop/iOS 2019.05.08

Swift Swift의 Switch

Switft의 Switch는 일반 언어들과 조금 다르다. 따라서 사실 if나 switch문은 기본적인 것이라 포스팅을 안하려고 했는데, switch문의 문법이 조금 특이하여 포스팅을 한다. Switch문에는 default가 꼭 있어야 한다. 다른 언어는 switch문에 default가 있어도 되고 없어도 된다. 하지만 Switft는 default가 없는경우 에러가 발생한다. 이또한 nil 문제가 발생하지 않도록 언어적으로 제약을 걸어놓은것 같다. switch문에는 범위연산자가 있다. 이건 바로 소스를 보자. let num : Int = 100; switch(num){ case 1 : print("1"); case 1..

Develop/iOS 2019.05.08

SandBox 제약으로 보안을 강화한다.

강의를 들으면 공부하는 시스템의 유래(?)를 설명해 주는것이 너무 좋다. 이런 기능이 있는데 이게 왜 나왔냐면 블라블라~ 사실 이것은 실무를 하는데 굉장히 중요한 내용이다. 고객에게 왜 안되는지, 내가 실력이 없어서가 아니라 루트(Root)단에서 막아버린거라 어쩔 수 없다는 이야기는 결과적으로 정확한 지식과 증거가 있어야 한다. 참고로 얼마전 안드로이드 앱을 개발하는데 동영상 녹화 파일이 4GB를 넘어버리면 녹화가 중지되는 이슈가 있었다. 고객사에서는 1차적으로 해당 이슈를 해결하길 바랬고, 해결할 수 없는 문제라면 해결 할 수 없는 이유를 알려달라고 했다. 원인은 안드로이드는 Local Memory가 FAT32 파일시스템이며, FAT32는 4GB 이상의 파일을 저장 할 수 없는 파일 시스템이다. 따라서..

Develop/iOS 2019.05.04

Background Service 제약

iOS는 Background Service가 안된다고 한다. (으잉?) 사실 Background Service가 안되면 제약되는 것들이 많다. Socket을 통한 신호를 못받는다던가, Notification, 알람 등등이 해당될 것이다. 이유는? 보안이다. 개인정보 보안. iOS는 보안으로 시작해서 보안으로 끝나나 보다. iOS App Store에는 백신앱이 없다. 이유는 백신앱이 있다는 것은 OS에 바이러스가 있을 수 있다는 가능성을 주는 것이기 때문이다. - 지나가다 본 글 - 이처럼 iOS는 보안적으로 굉장히 자부심을 가지고 있는 것 같다. 하지만 그로인해 개발자들은 생각보다 많은 피해를 감수해야 한다. 개발을 하면서 당연히 Background Service는 앱의 퀄리티를 높이는데 필요했고 수많은..

Develop/iOS 2019.05.04

Xcode 사용법

회사 업무로 인하여 Swift를 조금 다뤄야 할 것 같다. Swift는 물론 Mac OS 자체가 나한테 익숙하지 않다. ( 처음 써봄.. 윈도우 만세.. ) Mac은 나한테 신기하기만 하고 아직까지는 어렵다. 하지만 익숙해지면 업무적 효율과 다른거 못 쓸거 같다는 생각도 든다. 시작 입문 강좌로 프로그래머스에서 제공하는 iOS Swift 입문 이라는 강의를 듣기로 했다. 아마 앞으로 작성하는 글들은 거의 위 강좌에서 나오는 내용일 것이다. 다만 내가 알아보기 쉽게 내 PC에서 직접 스크린샷을 찍어서 가져온 이미지와, 설명들이 추가로 작성될 예정이다. Xcode 실행 실행하면 제일 먼저 아래 이미지가 나온다. 종류 개념 Get started with a playground Xcode의 메모장 같은 용도로 ..

Develop/iOS 2019.05.03
반응형