-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Convenience init에 대해 설명하시오. #24
Comments
Convenience Initializers 편리한 초기자 (보조 이니셜라이저)편리한 초기자는 초기화 단계에서 미리 지정된 값을 사용해 초기화를 할 수 있게 하는 초기자이다. convenience init(parameters) {
statements
} |
init에는 designated init과 convenience init이 있다. 그 중 Convenience init은 보조 이니셜라이저로, 내부에서 같은 클래스의 designated init을 호출하여 클래스의 원래 이니셜 라이저를 도와주는 역할을 한다. // Designated init
init(parameters) {
// 실행할 코드
}
// Convenience init
convenience init(parameters) {
// 실행코드
} https://spark-chive-e55.notion.site/Swift-Init-d03c3f9524984d7baad6bf00aef61721 |
Designated init은 Swift의 초기화 이니셜라이저이다. class Person {
var name: String
var age: Int
var gender: String
init(name: String, age: Int, gender: String) {
self.name = name
self.age = age
self.gender = gender
}
} init의 파라미터에서 클래스 프로퍼티가 하나라도 빠지게되면, 오류가 나게 된다. class Person {
var name: String
var age: Int
var gender: String
init(name: String, age: Int, gender: String) {
self.name = name
self.age = age
self.gender = gender
}
convenience init(age: Int, gender: String) {
self.init(name: "zedd", age: age, gender: gender)
}
} 파라미터로 넘겨주지 않은 값은 임의로 지정하며, 파라미터로 넘어간 것들만 넣어주면 된다. |
convenience init(편의 이니셜라이저)는 추가적인 초기화 작업을 할 수 있도록 도와주는 보조 이니셜라이저이다. designated init(지정 이니셜라이저)는 객체 안의 모든 프로퍼티가 초기화 될 수 있도록 해주는 이니셜라이저라고 한다면 편의 이니셜라이저는 그 이외에 입맛대로 초기화 작업을 할 수 있도록 도와준다. 주의해야할 점은 convenience init을 사용할 때에는 내부에 같은 객체 레벨의 다른 이니셜라이저를 호출해야 한다. |
No description provided.
The text was updated successfully, but these errors were encountered: