【发布时间】:2015-09-03 20:18:32
【问题描述】:
我有一个在 Objective C 应用程序中使用的 swift 框架。我有一个 Location 类,它有两个参数:
///Latitude in Decimal Degrees
public var lat : Double?
///Longitude in Decimal Degrees
public var lon : Double?
Objective C 无法访问它们,因为它们是可选的。我希望让一个仅限 swift 的类在这里工作,所以我的“解决方法”是为该类添加一些 @objc 方法 - 但我不希望它们可以被快速访问。
///Objective C Extensions to allow easier Access
extension LocationMessage {
@objc var getLat : Double {
if (lat != nil) {
return lat!
}
return -91;
}
@objc var getLon : Double {
if (lon != nil) {
return lon!;
}
return -181;
}
}
那么问题来了:
1) 我可以将此扩展放入框架中,但有什么方法可以“隐藏”swift 使其无法调用它?
2) 我想我可以在我的 Objective C 应用程序中编写一个 swift 文件 - 将扩展添加到类 - 这会是要走的路吗?
3) 还有其他方法吗?
【问题讨论】:
-
我会说 2 号是要走的路。您是否尝试将扩展设为私有?
标签: ios objective-c xcode swift