Objective C 为 Swift 中的变量 属性 赋值的语法
Objective C syntax to assign a value to a variable property in Swift
我当前的项目在 Objective C 中,我想在 Swift 中对其进行新的实现。
在我的 Objective C class 中,我需要为 swift 变量 属性 赋值,但我不知道执行此操作的语法。我想这样赋值。
self.pollBarGraph = [[PollBarGraphView alloc] initWithFrame:self.view.frame];
//I want to replace this with obj-c syntax to make it work
self.pollBarGraph.dataEntries =
[
BarEntry(score: 100, title: "A"),
BarEntry(score: 35, title: "B"),
BarEntry(score: 55, title: "C"),
BarEntry(score: 3, title: "D"),
BarEntry(score: 10, title: "E")
]
PollBarGraph 是我在其中添加的 Swift 文件:
class BarEntry: NSObject {
let score: Int
let title: String
init(score: Int, title: String) {
self.score = score
self.title = title
}
}
@objc open var dataEntries: [BarEntry] = []{
didSet {
//my code
}
}
如何使用 Objective C 语法将值分配给 Swift 变量?
首先,你不需要didSet
,因为你在赋值的时候已经有了这个值。当设置值时,您使用 didSet
做一些额外的副作用,例如一些计算,使某些东西无效等。但这里不是这种情况。
所以首先您需要在 swift 代码中正确指定 类,例如
class BarEntry: NSObject {
let score: Int
let title: String
@objc init (score: Int, title: String) {
self.score = score
self.title = title
}
}
class PollBarGraphView : UIView {
@objc open var dataEntries = [BarEntry]() // default: empty array
}
别忘了通过 @objc
公开你的 BarEntry.init
。
在Objective C中使用,语法如下:
PollBarGraphView *pb = [[PollBarGraphView alloc] initWithFrame:self.view.frame];
pb.dataEntries = @[
[[BarEntry alloc] initWithScore:1 title:@"A"],
[[BarEntry alloc] initWithScore:2 title:@"B"],
[[BarEntry alloc] initWithScore:3 title:@"C"]
];
我当前的项目在 Objective C 中,我想在 Swift 中对其进行新的实现。
在我的 Objective C class 中,我需要为 swift 变量 属性 赋值,但我不知道执行此操作的语法。我想这样赋值。
self.pollBarGraph = [[PollBarGraphView alloc] initWithFrame:self.view.frame];
//I want to replace this with obj-c syntax to make it work
self.pollBarGraph.dataEntries =
[
BarEntry(score: 100, title: "A"),
BarEntry(score: 35, title: "B"),
BarEntry(score: 55, title: "C"),
BarEntry(score: 3, title: "D"),
BarEntry(score: 10, title: "E")
]
PollBarGraph 是我在其中添加的 Swift 文件:
class BarEntry: NSObject {
let score: Int
let title: String
init(score: Int, title: String) {
self.score = score
self.title = title
}
}
@objc open var dataEntries: [BarEntry] = []{
didSet {
//my code
}
}
如何使用 Objective C 语法将值分配给 Swift 变量?
首先,你不需要didSet
,因为你在赋值的时候已经有了这个值。当设置值时,您使用 didSet
做一些额外的副作用,例如一些计算,使某些东西无效等。但这里不是这种情况。
所以首先您需要在 swift 代码中正确指定 类,例如
class BarEntry: NSObject {
let score: Int
let title: String
@objc init (score: Int, title: String) {
self.score = score
self.title = title
}
}
class PollBarGraphView : UIView {
@objc open var dataEntries = [BarEntry]() // default: empty array
}
别忘了通过 @objc
公开你的 BarEntry.init
。
在Objective C中使用,语法如下:
PollBarGraphView *pb = [[PollBarGraphView alloc] initWithFrame:self.view.frame];
pb.dataEntries = @[
[[BarEntry alloc] initWithScore:1 title:@"A"],
[[BarEntry alloc] initWithScore:2 title:@"B"],
[[BarEntry alloc] initWithScore:3 title:@"C"]
];