본문 바로가기

반응형

Swift

Swift 코드 작성시 변수와 함수 순서 정답은 아니지만, 보편적으로 호출순서 혹은 변수부터 함수순으로 정의합니다. 현재 사용하는 순서는 다음과 같습니다. let, var @IBOutlet ViewDidLoad @IBAction function 더보기
프로토타입 셀 제어 두가지 방법 : tag in attribute inspector , custom class 제어방법 1 : tag in attribute inspector 제어방법 2 : custom class 아울렛 변수를 뷰 컨트롤러에 직접 정의하면 셀 내부 객체들이 정적인 객체가 되므로 사용하는데에 문제가 생깁니다. 커스텀 클래스에 아울렛 변수를 정의하면 이는 동적으로 사용할 수 있는 형태의 객체가 되기 때문에 아울렛 변수를 통해 객체를 관리할 수 있습니다. 따라서 태그 속성 사용 시 단점으로 꼽히는 객체 관리 문제나 잘못된 태그값을 호출하는 문제로부터 자유로워질 수 있으며, 유지 보수도 무척 편리해집니다. 방법 UITableViewCell 을 상속 받는 클래스 작성 스토리보드에서 프로토타입 셀의 Class 속성을.. 더보기
이미지 사용 용도에 따른 UIImage 생성자 선택 생성자 종류 1. Loading and Caching Images init?(named: String, in: Bundle?, compatibleWith: UITraitCollection?) init?(named: String) init(imageLiteralResourceName: String) 2. Creating and Initializing Image Objects init?(contentsOfFile: String) init?(data: Data) init?(data: Data, scale: CGFloat) init(cgImage: CGImage) init(cgImage: CGImage, scale: CGFloat, orientation: UIImage.Orientation) init(ciIma.. 더보기
Status Bar 색상 지정 방법 두가지 방법이 있지만 첫번째 방법은 권장하지 않음 앱 전체에 대해 설정 info.plist - View controller-based status bar appearance - NO AppDelegate 에 아래 코드 작성func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { application.statusBarStyle = .lightContent // .default return true } 각 뷰 컨트롤러에 대해 설정 Defalut 는 No (그러나 위에서 info.plist를 건들였다면 를 Vie.. 더보기
@IBAction, 뷰끼리 값전달, 델리게이트, 최초 응답자 간단한 정보 @IBAction 타입 지정할 때 기준 개별 타입을 선택해야 할 때 액션 메소드를 호출한 컨트롤의 속성값이 필요하거나, 이를 제어해야 할 때 Any 타입을 선택해야 할 때 서로 다른 타입의 컨트롤이 동일한 액션 메소드를 호출하게끔 처리하고 싶을 때 액션 메소드를 호출한 컨트롤의 정보가 필요 없을 때 개별 타입을 반드시 사용해야 하는 경우를 제외한 나머지 모든 경우 뷰 사이에서 값 전달할 때 프로퍼티로 받는 이유 A뷰에서 B뷰로 값을 넘길 때 아울렛 변수에 바로 받지 않고 프로퍼티에 받는 이유는 아울렛 변수는 외부에서 값을 직접 대입할 수 없는 변수이기 때문입니다. 또한, 아울렛 변수는 외부 객체에서 직접 참조할 수 없도록 제한되어 있습니다. 즉 private 변수로 생성되어 있다고 생각하면 될 것 같습니.. 더보기
*.pbxproj 삭제 했을 때 대처하는 방법 *.pbxproj 삭제 했을 때 대처하는 방법 (단, Git Commit 존재해야 합니다) 대처방법1. Git reset 명령어 이용해서 gitignore 에 pbxproj 파일 제외하기 바로 이전 커밋으로 돌아가서 project.pbxproj 파일 복사2. 다시 최근 커밋으로 돌아옵니다.3. 프로젝트 파일 - .xcodeproj 파일 오른쪽 클릭 - 패키지 내용보기 - .pbxproj 파일 붙여넣기4. 3번에서 project.xcworkspace 삭제5. 3번에서 xcuserdata 폴더 아래 username.xcuserdatad 파일 삭제6. 돌아가서 .xcodeproj 파일 들어가서 실행하면 fail 뜨는데 pods 파일 때문에 해당 파일로 열면 안되는 것 같습니다.에러 메세지 : framework.. 더보기
Switch 사용하면서 값이 배열 안에 있는지 확인하는 방법 아래와 같은 코드가 있을 때 value 를 foo or bar 배열에 존재하는지 확인하는 방법 let foo = [1, 2, 3] let bar = [4, 5, 6] let value = 5 1. ~= 연산자 만들기 func ~=(array: [T], value: T) -> Bool { return array.contains(value) } let foo = [1, 2, 3] let bar = [4, 5, 6] let value = 5 switch value { case foo: print("in foo") case bar: print("in bar") default: break } 2. where 문 사용 let foo = [1, 2, 3] let bar = [4, 5, 6] let value = 5 .. 더보기
여러 타입을 저장하기 위한 enum 만들기 Array Or Dictionary 에 Bool,Int,String 등 다양한 값을 추가하기 위해서 enum을 활용합니다. Any 타입을 사용하지 않고 다른 방법을 이용하기 위해서 enum 의 연관값을 이용합니다. 따라서, enum을 활용하는 Array Or Dictionary 에서는 다양한 타입의 값을 저장 & 관리할수 있습니다. enum 정의 enum JsonType { case string(String) case int(Int) case bool(Bool) case object(String) } enum 타입을 배열에 저장할 때 Array를 선언할 때는 타입형태에 JsonType을 선언해줍니다. 저장할 때 enum case에 정의된 형태로 값을 추가해줍니다. struct JsonArray { pri.. 더보기

반응형