gpt4 book ai didi

objective-c - Objective-C 依赖项的弃用警告

转载 作者:行者123 更新时间:2023-12-04 10:46:52 26 4
gpt4 key购买 nike

使 Swift var 向后兼容 Objective-C

我有一个已转换为 Swift 的 Objective-C 类。我所有的测试都通过了,但我想通过添加一个弃用警告来进一步优化它,以通知用户更新下游依赖项到 var ( Decimal ) 的 Swift 版本,如果可以的话。他们是否可以取决于他们使用的类是 Objective-C 类(只能“看到” NSDecimalNumber )还是 Swift 类。有没有办法做到这一点?这是我到目前为止所得到的。

  @available(swift, introduced: 5.0)
public var mySwiftDecimal: Decimal?

@available(*, deprecated, renamed: "mySwiftDecimal")
public var myObjCDecimal: NSDecimalNumber? {
get {
return mySwiftDecimal as NSDecimalNumber?
} set {
mySwiftDecimal = newValue as Decimal?
}
}

最佳答案

您可以将成员注释为 Swift 中已弃用:

@available(swift, deprecated: 5.0, renamed: "mySwiftDecimal")
@objc public var myObjCDecimal: NSDecimalNumber? {
get {
return mySwiftDecimal as NSDecimalNumber?
} set {
mySwiftDecimal = newValue as Decimal?
}
}

然后从 Swift 使用它会发出警告:
let foo = Foo()
print(foo.myObjCDecimal)
// 'myObjCDecimal' is deprecated: renamed to 'mySwiftDecimal'

但是从 Objective-C 使用它不会:
Foo *foo = [[Foo alloc] init];
NSDecimalNumber *dec = foo.myObjCDecimal;

关于objective-c - Objective-C 依赖项的弃用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com