목록개발 (43)
Stacking Fire
프로퍼티 단어 강박 프로퍼티는 클래스, 구조체, 열거형의 관련값 Properties associate values with a particular class, structure, or enumeration. Stored properties store constant and variable values as part of an instance, whereas computed properties calculate (rather than store) a value. Computed properties are provided by classes, structures, and enumerations. Stored properties are provided only by classes and structures. ..
Swift에서는 모든 것이 클래스가 아닙니다. 사실 생각해보면 다 그럴 필요는 없죠! 어떨 때 클래스를 쓰고 어떨 때 구조체를 쓰는지 잘 생각해서 적용해서 예쁜 코드를 만들어 봅시다! 특징 클래스뿐만 아니라 구조체도 객체 지향 스타일로 활용. 하나의 소스 파일 안에서 여러 개의 클래스나 구조체를 선언할 수 있으며, 중첩해서 클래스 안에 클래스, 구조체 안에 구조체를 중첩해서 정의하고 선언할 수도 있습니다. 구조체 정의 타입이므로 대문자 카멜케이스 적용 memberwise initializer : 구조체의 프로퍼티 이름으로 자동으로 init 메서드가 생성됨. struct YourStructName { var someProperty: String mutating func someMethod(someParam..
GitHub에서 보기 거 얘긴 많이 들었는데... 그래서 그게 뭐죠? Swift에 대해 이야기할 때 가장 자주 등장하는 주제 중 하나가 옵셔널입니다. 결론부터 말하면 옵셔널이란 '값의 부재를 표현하는 Generic Enumeration'인데요... 뭔 소린지 파봤습니다. 와닿게 해보려고 옵셔널이 만들어진 경위를 상상해 보았는데요. 기존의 Objective-C에서는 특정 클래스의 인터페이스를 만들 때, nil이 들어가도 되는지 안 되는지를 꼭 주석으로 명시해 주어야 했습니다. 왜냐면 실제 값을 할당해주지 않았어도 선언을 했다면 그대로 불러다 쓸 수 있었고, 빈 값인지 아닌지를 확신할 수 없어도 빌드에 실패하지는 않기 때문이죠. ...그런데 뭐든 그렇지만 사용자(개발언어의 사용자. 개발자.)가 설명서(주석,..
2017년 WWDC에서 Cocoa Touch 프레임워크와 스위프트에 새롭게 추가된 것들을 이야기하는 세션인 "What's New In Cocoa Touch 2017"를 보고 나름대로 정리해 보았습니다. WWDC 세션 영상 1. Productivity Drag & Drop 이번 iOS 업데이트는 상당히 특이한 업데이트였는데요. iPhone에 대해서는 몇몇 UI 수정사항을 제외하고는 크게 사용성이 변화할 정도의 것은 없었던 데 반해, 아이패드는 완전히 새로운 기기로 만들어 버렸습니다. 그 중 하나가 단연 "File"이라는 앱과 "Drag & Drop" 기능이었습니다. 그것을 적용하는 방식을 소개하고 있었습니다. UIDragInteraction : 적용할 아이템에 넣어버리기. let drag = UIDragI..
특징 소괄호의 생략이 불가능 - 즉 소괄호와 func로 함수를 알아볼 수 있음. 타입에 민감한 스위프트답게, 매개변수의 타입이 다른 경우 서로 다른 함수로 인식, 매개변수가 다른 동일한 이름의 여러 함수를 정의하는 것이 가능. 정의하기 기본 형태123456789func 함수이름(매개변수이름 전달인자레이블: 매개변수타입, 매개변수이름 전달인자레이블: 매개변수타입 = 기본값) -> 반환값타입 { 실행구문 return 반환값} func functionName(parameterName argumentLabel1: ParameterType, parameterName argumentLabel2: ParameterType = defaultValue) -> ReturnType { implementation return..
Delegation은 한번 이해하면 어렵지 않고, 심지어는 편리함도 느끼는 패턴입니다.하지만 처음 iOS 공부를 하다 보면 늘 부딪히는 난관이 역시 Delegation입니다. 저도 많이 써왔지만 다시 생각 정리가 필요한 것 같아 정리해 보았습니다. Delegation이란, 한 프로그램 안에서 한 오브젝트가 다른 오브젝트와 협동할 수 있게 하는 하나의 패턴입니다.두 오브젝트 사이에서 일어나는 일이기에, 우선 용어를 정리하겠습니다. 아래 괄호 속 영문용어는 Apple의 공식 도큐먼트를 참조했습니다. 위임자 객체 (Delegating Object) : Delegate 프로토콜을 정의하는 주체입니다. UITableViewDelegate에서의 UITableView, UITextFieldDelegate에서의 UIT..
오토 레이아웃으로 스크롤 뷰를 만드는 과정은 생각보다 혼란스러운 부분이 있는데요. 비어 있는 UIView를 Content View로 활용하고, 그 height를 UILabel이나 Stack View로부터 받아오는 종 스크롤 뷰(위아래로 스크롤 되는 스크롤 뷰)기본 세팅을 PDF로 만들어 봤습니다. 익숙하신 분들은 조금 더 간단히, 혹은 더 응용을 할 수 있으시겠으나 우선 처음인 분들은 이렇게 한번 따라해 보시길 바라요 :)
if 다 똑같은데 값이 꼭 Bool이어야 함. 0이나 nil이나 암튼 딴걸로 안 됨. 그냥 true or false switch 기존 언어와 가장 많이 달라진 부분. enum이 다양하게 활용될 수 있게 바뀐 것에 맞추어 좋아짐. 정수형 이외의 값이 들어갈 수 있으며, 정수 구간도 적용이 가능. ex) case 1...9: break : 선택사항. 없더라도 해당 케이스가 실행되면 바로 나가버림. fallthrough : break 하지 않고 그냥 계속 진행되게 할 때 사용. 별로 안 하고 싶다. default: : 열거형 등이 아닌 경우에는 꼭 필요. 역시나... 왠만하면 열거형으로 쓰고 싶다. where : 조건을 확장할 때 사용123456789101112131415161718192021222324252..
거의 비슷하지만, 유용하거나 잊을만한 것들만 정리합니다. 참조비교 A === B, A !== B등으로 비교. 스위프트의 유일한 참조 타입은 클래스의 인스턴스에서만 사용이 가능. 삼항 조건 연산자 Question? T : F 물음표 앞이 참이면 T, 아니면 F 반환. 범위 연산자 폐쇄 범위 : A...B A와 B를 다 포함. 반폐쇄 범위 : A.. Bool { return left.registerNumber == right.registerNumber} func == (left: SmartPhone, right: SmartPhone) -> Bool { return left.phoneNumber == right.phoneNumber}Colored by Color Scriptercs
Type-safe 타입을 안심하고 사용할 수 있다 == 컴파일할 때 그만큼 엄격하다는 뜻! 암튼 첫째도 타입 둘째도 타입. 타입만 잘 지정하면 그 다음부턴 세상 편하다! 타입 별칭 데이터 타입이 몇몇가지로 지정되어 있고, 나머지는 모두 객체(참조 타입)로 쓰면서 데이터 타입들만 특별히 다루었던 Objective-C와 달리, 객체보다는 좀더 데이터 타입에 집중하기 시작했다. 따라서 데이터 타입도 클래스처럼 정의하거나 별칭을 붙여서 활용할 수 있게 되었다. 좀더 현실화된 것.상황에 따라 적절한 이름을 붙여서 가독성을 높일 수 있을 것 같다! 123456 //이름을 지정할 수 있다. 지정 후에도 기존 이름을 사용할 수도 있다. typealias JCInt = Int64 typealias JCUInt = UIn..