就iOS语言而言,我真的只知道Swift,但我正在尝试学习如何从Objective C转换。我正在做它(帮助我知道C#)并使用{ {3}}但我对指南中没有的某些方面感到难过。
例如,从this as a guide for translation开始,尝试翻译这些说明对我来说完全没有意义:
打开新添加的标题CERangeSliderKnobLayer.h并替换 其内容如下:
#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
我的意思是,目前我新创建的类看起来像这样:
import UIKit
import QuartzCore
class CERangeSliderKnobLayer: CALayer {
}
这一切会在哪里?在课堂上我假设。特别是物业设置。
答案 0 :(得分:5)
首先,在Swift中你没有接口和实现。您编写实现部分(class
)和Swift编译器完成的接口,开发人员通常从未见过。
@class
已不再可用,因为Swift正在为您执行输入工作。您只需要确保该类是可访问的(在项目中,如果来自objc桥接或从其他框架导入)。
你想要的是这个:
import UIKit
import QuartzCore
class CERangeSliderKnobLayer: CALayer {
var highlighted: Bool
weak var slider: CERangeSlider
}
这应该在文件 CERangeSliderKnobLayer.swift
中在objc中由@property
生成的getter和setter在Swift中声明var
时自动完成