swift3.0-구조 함수
구조 함수의 소개
작용: 실례 대상의 내용을 초기화하려면 Swift 요구 클래스나 구조체의 저장 속성(lazy가 아닌)이 있어야 한다. 대상 구조가 끝난 후에 초기화 값 문법이 있어야 한다. init(파라미터 목록) {초기화 코드} 주의: 1.Swift의 클래스/패브릭/열거에는 구성 방법이 필요합니다. 2.구조 방법의 역할은 단지 속성을 초기화하는 데 쓰이는 것이지 내용을 분배하는 데 쓰이는 것이 아니다. 메모리를 분배하는 것은 시스템이 우리를 도와준 것이다.구조 방법은 스텔스 호출입니다. 클래스 이름 () 형식으로 대상을 만들면 스텔스 호출 init () 구조 방법 4.만약 모든 저장 속성에 기본값이 있다면 구조 방법을 제공하지 않을 수 있으며 시스템은 은밀한 구조 방법을 제공할 것이다.만약에 저장 속성이 절약을 제공할 수 있다면 모두가 절약 값을 설정하는 방식을 사용하는 것을 권장한다. 이렇게 하면 코드를 간소화할 수 있다(사용자 정의 구조 방법을 사용하지 않고 저장 속성 유형을 쓰지 않는다)
구조 함수의 소개
class Person: NSObject {
var name : String
var age : Int
// NSObject( )
override init() {
name = ""
age = 0
}
}
// Person
let p = Person()
1 초기화 시 속성 값 부여
class Person: NSObject {
var name : String
var age : Int
// , init()
init(name : String, age : Int) {
self.name = name
self.age = age
}
}
// Person
let p = Person(name: "zhangsan", age: 18)
(1) 사전 회전 모형(초기화 시 사전 전송)
class Person: NSObject {
var name : String
var age : Int
// , init()
init(dict : [String : NSObject]) {
name = dict["name"] as! String
age = dict["age"] as! Int
}
}
// Person
let dict = ["name" : "zahngsan", "age" : 18]
let p = Person(dict: dict)
(2) 사전 회전 모형(KVC로 전환)
KVC는 모든 속성에 값을 부여할 수 없습니다. 따라서 속성은 기본값이 있어야 합니다. 기본 데이터 형식의 기본값은 0이고, 대상이나 구조체 형식은 선택할 수 있는 형식으로 정의하면 됩니다. (선택할 수 있는 형식은 값을 부여하기 전nil)
class Person: NSObject {
// , .
var name : String?
// , KVC
var age : Int = 0
// , init()
init(dict : [String : NSObject]) {
//
super.init()
// KVC
setValuesForKeys(dict)
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.