Swift3.x - 클래스 및 구조체
class : SuperClass {
//
}
* :
* , ,
* , NSObject
** **
* Swift :
* :
* :
* :
*
```
class person: NSObject{
//
var age = 0
var name: String?
}
let child = person()
child.age = 18
child.name = " "
if let name = child.name {
print("\(name) \(child.age) ")
}
// : 18
```
*
, , , , 。
class person: NSObject{
var time = 2
var startSpeed = 10.0
var hightSpeed = 20.0
var endSpeed = 5.0
//
var averageSpeed: Double {
return (startSpeed + hightSpeed + endSpeed) * 0.5
}
//
func averageSpeedFunction() -> Double {
return (startSpeed + hightSpeed + endSpeed) * 0.5
}
}
let child = person() child.averageSpeedFunction() child.averageSpeed
*
, 。 !
class person: NSObject{
//
static var book = 0
}
person.book = 2//결과: 2
** **
*
* OC :init
* ,
* ,
* NSObject
*
*
* , , , 。
```
class person: NSObject{
var name: String?
var height = 0.0
//
// , ,Xcode , ,Xcode , !
override init(){
super.init()
}
//
init(name: String, height: Double) {
self.name = name
self.height = height
}
}
let child = person(name: " ", height: 1.88)
child.name
child.height
// : 1.88
```
*
```
class person: NSObject{
var name: String?
var height = 0.0
//
override init(){
super.init()
}
//
init(name: String, height: Double) {
self.name = name
self.height = height
}
init(dict: [String : AnyObject]) {
// , AnyObject? , !
//self.name = dict["name"]
//self.height = dict["height"]
// 1:
//as? as? as?
name = dict["name"] as? String
//as! as! as!
height = dict["height"] as! Double
// , , crash
// 2:
name = dict["name"] as? String
//
if let tempHeight = dict["height"] as? Double {
height = tempHeight
}
}
}
let child = person(dict: ["name":" " as AnyObject, "height": 1.90 as AnyObject])
```
KVC
```
class person: NSObject{
var name: String?
var height = 0.0
//
override init(){
super.init()
}
//
init(name: String, height: Double) {
self.name = name
self.height = height
}
//KVC
init(dict: [String : AnyObject]) {
super.init()
setValuesForKeys(dict)
}
// ->
override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}
let child = person(dict: ["name":" " as AnyObject, "height": 1.90 as AnyObject, "weight": 100 as AnyObject])
child.name
child.height
// : 1.9
```
** **
* OC set
* Swift
*
*
* willSet:
* didSet:
class person: NSObject{
var name: String?{
willSet{
print("\(name)")
}
didSet{
print("\(name)")
}
}
} let child = person() child.name = "샤오밍"
** **
:
*
*
*
*
*
*
* Swift :
* struct
struct 구조체 이름 {//구조체 속성 or 방법}
** **
:
struct SomeStruct {//구조체 속성 or 메서드 var width = 0 var height = 0}//실례화 구조체 var someStruct = SomeStruct()
Swift , , OC !
import UIKit
struct SomeStruct {//구조체 속성 or 메서드 var width = 0 var height = 0}
var someStruct = SomeStruct() someStruct.height = 100 someStruct.height//결과: someStruct.Height 값은 100입니다.
** **
, ! , !
struct SomeStruct {//구조체 속성 or 메서드 var width = 0 var height = 0}
var someStruct = SomeStruct(width: 66, height: 88) someStruct.height//결과: 88 someStruct.width//결과:66
** **
� ( ), ( )!
, , :
* 。
* , 。
* , , 。
* 。
###### :
Swift 、 、 (OC )。 。 ,Swift 。Swift , 。
Zeb
:https://github.com/numbbbbb/the-swift-programming-language-in-chinese
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.