목록개발/Objective-C -> Swift (17)
Stacking Fire
특징 소괄호의 생략이 불가능 - 즉 소괄호와 func로 함수를 알아볼 수 있음. 타입에 민감한 스위프트답게, 매개변수의 타입이 다른 경우 서로 다른 함수로 인식, 매개변수가 다른 동일한 이름의 여러 함수를 정의하는 것이 가능. 정의하기 기본 형태123456789func 함수이름(매개변수이름 전달인자레이블: 매개변수타입, 매개변수이름 전달인자레이블: 매개변수타입 = 기본값) -> 반환값타입 { 실행구문 return 반환값} func functionName(parameterName argumentLabel1: ParameterType, parameterName argumentLabel2: ParameterType = defaultValue) -> ReturnType { implementation return..
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..
모두 구조체로 이루어져 있음. 구조체에 익스텐션, 제네릭 등을 사용할 수 있도록...내용 나중에 추가 필요. (스위프트는 Objective-C와 달리 구조체로 이루어진 데이터 타입을 많이 쓴다는 지식만을 가지고 공부한 내용입니다. 포스팅하는 시점에서는 나중에 해당 부분을 보강해서 다시 스터디해야겠다는 생각이 드네요...) Int와 UInt 각 환경에 따라 그 범위가 달라지는 정수 데이터타입. Int의 양수 범위를 넘어서는 양수를 사용하지 않을 경우 Int 사용. UInt의 경우 마이너스값을 계산하면 바로 오류. Bool true와 false로 표현됨 0이나 1을 할당하는 것이 불가능. 키워드로만 가능함. Float과 Double 부동소수점 표현용 실수타입 기본적으로 타입추정은 Double이며, 어떤 게 ..
시작하기 전에 알아두어야 할 것들.명명법 lowerCamelCase : 함수, 메서드, 인스턴스 UpperCamelCase : 클래스, 구조체, 익스텐션, 프로토콜, 열거형 등 타입의 이름 로그 print() : 일반적인 로그 dump() : 좀 더 자세한 정보 제공 문자열 보간(String Interpolation) 문자열 내에 "\(변수나 상수)" 를 추가하여 문자열로 만들고 싶을 때. NSString의 stringWithFormat: 를 훨씬 쉽게 대체해 놓은 것. 다만 변수나 상수의 타입이 CustomStringConvertible 프로토콜을 준수해야 가능. 변수와 상수 var : 변수를 생성. let : 상수를 생성. 기본적으로 모든 것에 let 사용, 필요시 Xcode가 불평할 것. 타입 추론..
Swift 명령형과 객체지향 패러다임을 기반으로 한 함수 / 프로토콜 지향 패러다임을 따르는 언어. 뭔가 말이 어렵지만, 현실을 반영하기 위해 만들어냈던 개념인 객체 지향의 경우 굳이 클래스로 객체화할 필요 없는 것들도 모두 객체화 하는 경향이 있었는데, 그건 class가 가진 기능을 가지면서 구조체 정도의 형태를 가지는 것들이 없었기 때문. 그 부분을 합리화한 것을 스위프트라고 보면 될 것 같다. 객체지향(Object-Oriented) 강한 응집력(Strong Cohesion)과 약한 결합력(Weak Coupling)을 바탕으로 공존하는 객체들의 커뮤니케이션으로 프로그램을 짜는 방법. Class : 강한 응집력을 바탕으로 설계되어야 하는 커스텀 데이터타입. Object : Class의 인스턴스. Met..