전체 글 (162) 썸네일형 리스트형 [iOS] Link Binary With Libraries vs Embed Frameworks Framework를 추가할 경우, Target > Build Phases 에 Link Binary With Libraries에 프레임워크가 추가된다.비슷해보이는 Embed Framework랑 뭐가 다른건지 궁금해서 찾아보고 정리.. Link Binary With Libraries앱 프로젝트에서 프레임워크의 API(함수..)을 써야하는 경우 해당 프레임워크는 바이너리 링크가 되어있어야 함 Embed Frameworks해당 프레임워크를 앱 번들에 포함하여 Xcode가 컴파일, 빌드가 가능하게 하고, 앱이 실행되면 임베드된 프레임워크가 필요할 때 메모리에 올라가게 된다. iOS가 제공하는 기본 프레임워크는 iOS 단말에서 기본적으로 사용가능하기 때문에 추가할 필요가 없으며, 3rd-party 프레임워크만 추가.. [Swift] 클로저 클로저(Closure) 일정 기능을 하는 코드를 하나의 블럭으로 모아놓은 것을 뜻해요. 지금 당장 필요하지 않지만 언젠가는 해야할 기능을 저장하기 위해 사용해요. 딜레이 후 일부 코드 실행 애니메이션이 완료된 후에 일부 코드 실행 다운로드가 완료된 후에 일부 코드 실행 서버 통신이 완료된 후에 일부 코드 실행 클로저 문법(예시: sorted(by:)function) public func sorted(by areInIncreaseingOrder: (Element, Element) -> Bool) -> [Element] { // } 배열의 타입과 같은 두 개의 매개변수를 가지고 Bool 타입을 반환하는 클로저를 전달인자로 받음 클로저 리턴값 Bool 값은 첫번째 전달인자 값이 새로 생성되는 배열에서 두번째 .. [iOS] 공통 AlertViewController 만들기 문제가 많은 앱 한개씩 뜯어고쳐보기 시작! UIAlertView 오랜만에 본다. 빌드 에러가 신경쓰여서 새로 만들어 적용해볼 예정이다. 얼럿 분석 1. 버튼 1개일 때 : [확인] 버튼 텍스트가 일반적임 2. 버튼 2개일 때 : [취소] 버튼 / [확인] 버튼 텍스트가 일반적임 3. 버튼 클릭 후 얼럿 dismiss 외의 액션 처리도 필요함 계획(?) 1. 버튼 1개인 얼럿을 띄우는 함수 개발 2. 버튼 2개인 얼럿을 띄우는 함수 개발 결과 /// # showAlertAction1 /// 버튼 1개인 얼럿입니다. /// /// - Parameters: /// - vc: alert 띄울 뷰 컨트롤러(미입력시 최상단 뷰 컨트롤러) /// - title: 얼럿 타이틀 /// - message: 얼럿 메세지 /.. [Swift] 접근제어 접근제어(Access Control) 코드끼리 상호작용을 할 때 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능 코드의 상세 내용은 숨기고 허용된 기능만 사용하는 인터페이스를 제공할 수 있어요. 접근수준 키워드를 통해 구현할 수 있어요 모듈과 소스파일 모듈: 배포할 코드의 묶음 단위 프레임워크(Framework) 라이브러리(Library) 애플리케이션(Application) 소스파일: 하나의 스위프트 코드 파일 접근수준 키워드(Access Level KeyWord) public - 공개 접근수준 어디서든 쓰일 수 있음 프레임워크에서 외부와 연결된 인터페이스를 구현하는데 많이 쓰여요 open - 개방 접근수준 공개 접근수준보다 높은 접근 수준 클래스와 클래스의 멤버에서만 사용할 수 있어요 open c.. [Swift] 프로퍼티(Property) / 메서드(Method) / 인스턴스(Instance) 프로퍼티(Property) 클래스, 구조체, 열거형 등에 관련된 값 저장 프로퍼티(Stored Properties) 인스턴스의 변수 또는 상수를 의미해요. 종류 변수 저장 프로퍼티 : var 키워드를 사용해서 생성 상수 저장 프로퍼티 : let 키워드를 사용해서 생성 지연 저장 프로퍼티 : lazy var 키워드를 사용해서 생성: 프로퍼티를 호출하기 전 까지는 값을 가지지 않아요. class Baby { // This property is lazily initialized. lazy var firstWord: String = { print("Goo goo ga ga ... Mama!") return "Mama" }() init() { print("Baby Born!") } } let cuteBaby = .. [Swift] 구조체(Struct) 와 클래스(Class) 구조체(Structure) struct 키워드로 정의합니다. 구조체는 값 타입 입니다. 스택 메모리 영역에 할당되기 때문에 속도가 빨라요. Codable 프로토콜을 채택하여 사용하면 Json ↔ struct 데이터 변환을 쉽게 할 수 있어요(Swift 4 이상) // 구조체 이름은 대문자 카멜케이스 struct 구조체이름 { // 필요한 프로퍼티와 메서드를 정의합니다. // 프로퍼티와 메서드는 소문자 카멜케이스 properties... methods ... } // 구조체 선언할 때 // 새로운 타입을 선언하는 것이므로 대문자 카멜케이스를 사용해 이름을 지어줘요. struct PersonInfo { // 프로퍼티나 메서드는 소문자 카멜케이스를 사용해 이름을 지어줘요. let name: String var.. [Swift] Optional Optional 값이 있을수도, 없을수도 있음을 나타내는 표현이에요. 의미 변수 또는 상수에 꼭 값이 있다는 것을 보장할 수 없다는 뜻이에요. 변수 또는 상수의 값이 nil일 수도 있따는 것을 의미해요. 옵셔널 변수 / 상수가 아니라면 값에 nil을 할당할 수 없어요. 옵셔널 변수 / 상수는 데이터 타입 뒤에 ?(물음표)를 붙여줘요. // Optional : 값이 있을수도 없을수도 있음을 의미해서, nil일 수도 있다는 뜻이에요. var myName: String = "Sophie" print(myName) var whoAmI: String? = "Milky" print(whoAmI) // Optional("Milky") 가 출력되요. Optional 은 Enum으로 정의되어 있어요. nil일 때는 no.. [Swift] 함수(Function) 함수(Function) vs 메서드(Method) 메서드(Method)와 동일한데 상황이나 위치에 따라 이름을 달리한 것일 뿐입니다. 함수(Function) : 모듈 전체에서 전역으로 사용하는 기능 메서드(Method) : 클래스, 구조체, 열거형 등 특정 타입에 연관되어 사용하는 기능 Swift에서 함수는 오버라이딩과 오버로딩 모두 가능합니다. 함수 정의하기 func 키워드로 함수를 정의할 수 있어요. → 로 반환값의 데이터타입을 명시할 수 있어요. return 키워드로 데이터를 반환해요. func 함수이름(매개변수...) -> 반환타입 { 코드 return 반환값(있는 경우) } 다양한 형태의 함수들 보기 👀 매개변수가 없는 함수 정의 // 매개변수가 없는 함수를 정의하고 싶을 때 func hello.. 이전 1 2 3 4 ··· 21 다음