누군가 지정된 초기화 프로그램과 초기화 프로그램의 편리함을 간단하고 명확하게 설명 할 수 있습니까? 가능한 경우 몇 가지 기본적인 예를 이해해야합니다. 감사합니다스위프트 2의 지정된 초기화 프로그램과 편의 초기화 프로그램
-4
A
답변
1
편의 이니셜 라이저는 클래스 또는 구조체를 인스턴스화하는 다른 방법을 제공합니다. 편리한 이니셜 라이저는 기본 이니셜 라이저를 호출해야합니다. 다음은 클래스의 유용성과 구문을 참조 도움이 될 아주 기본적인 예는 다음과 같습니다
import Foundation
class Person {
var firstName: String
var lastName: String
init(firstName: String, lastName: String) { //default initizlier
self.firstName = firstName
self.lastName = lastName
}
convenience init(fullName: String) { //convenience initalizer to let user create instance of Person with a single string
var fname: String
var lname: String
var nameParts = fullName.componentsSeparatedByString(" ")
if nameParts.count == 1 {
fname = ""
lname = nameParts[0]
} else {
fname = nameParts.first ?? ""
lname = nameParts.last ?? ""
}
self.init(firstName: fname, lastName: lname) //must call the default initializer
}
}
let person1 = Person(firstName: "Fred", lastName: "Flintstone")
let person2 = Person(fullName: "Wilma Flintstone")
//let person3 = Person() //invalid due to no init() defined
print("\(person1.firstName) \(person1.lastName)") //Fred Flintstone
print("\(person2.firstName) \(person2.lastName)") //Wilma Flintstone
희망이 예 것들을 조금을 명확히하는 데 도움이!
+0
을 참조하십시오. 감사! 그것은 큰 도움이되었습니다 –
+0
완벽한 예를 들어 답을 가장 잘 설명했습니다! – technerd
1
관련 문제
- 1. 초기화, 인수 초기화 및 편의 초기화
- 2. 스위프트 개체 초기화 (클래스 팩터 리 메서드, 기본 초기화, 편의 초기화)
- 3. 지정된 초기화 프로그램, 매개 변수를 유지 하시겠습니까?
- 4. 매개 변수가 더 적은 Swift의 편의 초기화
- 5. 스위프트 3 : 초기화 프로그램 오류 리턴
- 6. 아파치 2의 초기화 모듈
- 7. 스위프트 | 새 애플리케이션 초기화
- 8. .xib에서로드 된 사용자 정의 uiview 용 편의 초기화 프로그램
- 9. 보기 컨트롤러의 지정된 초기화 프로그램과 함께 단편을 사용할 수 있습니까?
- 10. 지정된 초기화 프로그램을 사용하여 클래스 초기화 - 혼동
- 11. 지정된 초기화 프로그램에서 인스턴스 객체를 초기화 하시겠습니까?
- 12. 지정된 동적 배열 초기화
- 13. C99 +에서 지정된 초기화 프로그램과 malloc을 결합 하시겠습니까?
- 14. 기본 클래스 초기화 프로그램과 멤버 변수 초기화 프로그램의 순서가 중요합니까?
- 15. 자동 초기화 자 상속의 조건은 초기화 자의 서명입니다.
- 16. Objective-C의 지정된 초기화 도구
- 17. 슈퍼 클래스 초기화 메서드를 지정된 초기화 도구에 연결
- 18. .Net 반환 초기화 프로그램?
- 19. 파이썬 프로그램 초기화
- 20. 프로그램 시작시 변수 초기화
- 21. 기본 클래스의 초기화 프로그램
- 22. 데이터베이스 초기화 - 프로그램 설계
- 23. 응용 프로그램 초기화 VB
- 24. 응용 프로그램 초기화
- 25. Laravel에서 초기화 프로그램 만들기
- 26. 유니콘로드 초기화 프로그램
- 27. 정적 필드 초기화 프로그램
- 28. 선호하는 응용 프로그램 초기화 방법
- 29. Zend 프레임 워크 2의 테이블 초기화
- 30. C++에서 정적 초기화 프로그램과 소멸자 찾기
* * 당신은 그것에 대해 이해하지 못합니까? https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html 및 http://www.codingexplorer.com/designated-initializers-convenience-initializers-swift/ – luk2302