목록분류 전체보기 (50)
Stacking Fire
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..
모두 구조체로 이루어져 있음. 구조체에 익스텐션, 제네릭 등을 사용할 수 있도록...내용 나중에 추가 필요. (스위프트는 Objective-C와 달리 구조체로 이루어진 데이터 타입을 많이 쓴다는 지식만을 가지고 공부한 내용입니다. 포스팅하는 시점에서는 나중에 해당 부분을 보강해서 다시 스터디해야겠다는 생각이 드네요...) Int와 UInt 각 환경에 따라 그 범위가 달라지는 정수 데이터타입. Int의 양수 범위를 넘어서는 양수를 사용하지 않을 경우 Int 사용. UInt의 경우 마이너스값을 계산하면 바로 오류. Bool true와 false로 표현됨 0이나 1을 할당하는 것이 불가능. 키워드로만 가능함. Float과 Double 부동소수점 표현용 실수타입 기본적으로 타입추정은 Double이며, 어떤 게 ..
주말에 성수동을 다녀왔습니다! 원래 목적지였던 베이커리 . 너무너무 핫 플레이스인데다 너무너무 핫한 날씨 때문에 못 갔어요ㅜ 초여름 치고는 너무나 본격적이었던 2017년 5월 22일, 땡볕에 자전거를 타고 지친 몸을 이끌고 도착한 성수동. 맛집멘토형의 손에 이끌려 찾아간 우콘카레입니다. 시켰던 메뉴는 돈까스 스페셜 카레와 소세지 스페셜 카레입니다만, 원래는 아비꼬 카레나 코코이치방야 카레집처럼 커스터마이징이 가능합니다. 아래는 가격대를 알아볼 수 있는 간단한 가격표입니다. 커리메뉴 가격 토핑 가격 우콘카레 5,500원 계란후라이 500원 고로케 카레 6,000원 고로케 2,000원 돈까스 스페셜 카레 8,500원 치킨 가라아게 2,000원 소세지 스페셜 카레 8,500원 소세지 2,000원 (2017년 ..
시작하기 전에 알아두어야 할 것들.명명법 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..