如何在 Swift 中引用 类?
How do I reference Classes in Swift?
就 iOS 语言而言,我真的只知道 Swift,但我正在努力学习如何从 Objective C 翻译。我在这方面做得很好(帮助我了解 C#)并使用 this as a guide for translation 但我在指南中没有的某些点上感到困惑。
例如,来自 this tutorial,尝试翻译这些说明对我来说完全没有意义:
Open up the newly added header CERangeSliderKnobLayer.h and replace
its contents with the following:
#import <QuartzCore/QuartzCore.h>
@class CERangeSlider;
@interface CERangeSliderKnobLayer : CALayer
@property BOOL highlighted;
@property (weak) CERangeSlider* slider;
@end
这在 Swift 中会是什么样子?
我知道如何 import QuartzCore
但其余的...
Swift中的@Class
是什么?
什么是@interface?
我现在有点明白 @property
是什么了,我猜我只是这样做了:
var highlighted: bool
weak var slider: CERangeSlider
我的意思是,目前我新创建的 class 看起来像这样:
import UIKit
import QuartzCore
class CERangeSliderKnobLayer: CALayer {
}
所有这些都去哪儿了?我假设在 class 里面。特别是 属性 设置。
首先,在Swift中你没有接口和实现。您编写实现部分 (class
) 和由 Swift 编译器完成的接口,开发人员通常看不到。
@class
不再可用,因为 Swift 正在为您执行导入工作。您只需要确保 class 是可访问的(在项目中,如果来自 objc 则桥接或如果来自另一个框架则导入)。
你要的是这个:
import UIKit
import QuartzCore
class CERangeSliderKnobLayer: CALayer {
var highlighted: Bool
weak var slider: CERangeSlider
}
这应该在文件中 CERangeSliderKnobLayer.swift
在 objc 中由 @property
生成的 getter 和 setter 会在您在 Swift
中声明一个 var
时自动完成
就 iOS 语言而言,我真的只知道 Swift,但我正在努力学习如何从 Objective C 翻译。我在这方面做得很好(帮助我了解 C#)并使用 this as a guide for translation 但我在指南中没有的某些点上感到困惑。
例如,来自 this tutorial,尝试翻译这些说明对我来说完全没有意义:
Open up the newly added header CERangeSliderKnobLayer.h and replace its contents with the following:
#import <QuartzCore/QuartzCore.h>
@class CERangeSlider;
@interface CERangeSliderKnobLayer : CALayer
@property BOOL highlighted;
@property (weak) CERangeSlider* slider;
@end
这在 Swift 中会是什么样子?
我知道如何 import QuartzCore
但其余的...
Swift中的@Class
是什么?
什么是@interface?
我现在有点明白 @property
是什么了,我猜我只是这样做了:
var highlighted: bool
weak var slider: CERangeSlider
我的意思是,目前我新创建的 class 看起来像这样:
import UIKit
import QuartzCore
class CERangeSliderKnobLayer: CALayer {
}
所有这些都去哪儿了?我假设在 class 里面。特别是 属性 设置。
首先,在Swift中你没有接口和实现。您编写实现部分 (class
) 和由 Swift 编译器完成的接口,开发人员通常看不到。
@class
不再可用,因为 Swift 正在为您执行导入工作。您只需要确保 class 是可访问的(在项目中,如果来自 objc 则桥接或如果来自另一个框架则导入)。
你要的是这个:
import UIKit
import QuartzCore
class CERangeSliderKnobLayer: CALayer {
var highlighted: Bool
weak var slider: CERangeSlider
}
这应该在文件中 CERangeSliderKnobLayer.swift
在 objc 中由 @property
生成的 getter 和 setter 会在您在 Swift
var
时自动完成