当前位置: 首页 > 面试题库 >

如何在Objective-C中使用Swift结构

翟越
2023-03-14
问题内容

简单地说,我有一个存储应用程序常量的结构,如下所示:

struct Constant {

    static let ParseApplicationId = "xxx"
    static let ParseClientKey = "xxx"

    static var AppGreenColor: UIColor {
        return UIColor(hexString: "67B632")
    }
}

Constant.ParseClientKey例如,可以通过调用在Swift代码中使用这些常量。但是在我的代码中,它还包含一些Objective-
C类。所以我的问题是如何在Objective-C代码中使用这些常量?

如果这种声明常量的方法不好,那么在Swift和Objective-C代码中使用全局常量的最佳方法是什么?


问题答案:

可悲的是,你不能暴露struct,也不是Objective-
C的全局变量。请参阅文档。

到目前为止,恕我直言,最好的方法是这样的:

let ParseApplicationId = "xxx"
let ParseClientKey = "xxx"
let AppGreenColor = UIColor(red: 0.2, green: 0.7, blue: 0.3 alpha: 1.0)

@objc class Constant: NSObject {
    private init() {}

    class func parseApplicationId() -> String { return ParseApplicationId }
    class func parseClientKey() -> String { return ParseClientKey }
    class func appGreenColor() -> UIColor { return AppGreenColor }
}

在Objective-C中,您可以像这样使用它们:

NSString *appklicationId = [Constant parseApplicationId];
NSString *clientKey = [Constant parseClientKey];
UIColor *greenColor = [Constant appGreenColor];


 类似资料:
  • 问题内容: 我正在迁移课程,以便对Swift进行一些培训。我通过桥接头成功使用了Objective- C代码,但是我需要导入一个包含指令的常量文件。 我在结合Swift和Cocoa和Objective-C(简单宏)中看到以下内容: 简单宏 通常在C和Objective-C中使用指令定义原始常量的地方,在Swift中使用全局常量代替。例如,常数定义可以在Swift中使用更好地表达。由于简单的类似于常

  • 问题内容: 有什么方法可以在我的Swift项目中使用swift使用用Objective-C编写的CocoaPod吗? 我只是制作桥接头吗?如果可以,我可以在Swift中访问CocoaPod中的库定义的对象,类和字段吗? 问题答案: 您问题的基本答案是,可以,您可以使用CocoaPods构建的Objective-C代码。 更重要的问题是“如何使用此类库?” 这个问题的答案取决于您中的标志: 假设您要

  • 我正在尝试实现音频可视化器到AVAudioPlayer从许多天,尝试了不同的库,但没有成功。现在我发现了一个库displayer,但问题是它在Objective-C中,现在我不知道如何在swift代码中使用它。这里是图书馆https://github.com/agilie/displayers-audio-visualizers的链接。请在这方面指导我,或者在SWIFT中建议我一个好的可视化器。

  • 问题内容: 我有一个带有值的枚举,它将用于告诉将消息记录到服务器的服务器类型的API方法。我正在使用Swift 1.2,因此可以将枚举映射到Objective-C 我得到错误 @objc枚举原始类型字符串不是整数类型 我没有设法找到任何地方说只有整数可以从Swift转换为Objective-C。是这样吗 如果是这样,是否有人对在Objective- C中提供类似的最佳实践建议? 问题答案: 从Xc

  • 问题内容: 我正在将我的项目从Objective-c转换为Swift,并且正在使用一个Swift类,我正在尝试在Objective- c类中进行访问。我的问题是,在Objective-C类中不可访问。这是我的速成班: 当我查看文件时,看不到: 当我尝试在我的Objective-c类中使用时,出现编译器错误。 有人知道这个问题吗?如何在Objective-c中访问Swift协议? 问题答案: 您需要

  • 假设我在Swift中定义了一个泛型类,类似于以下内容: (我知道数组有一个稍微好一点的实现,这只是一个例子。) 在Swift中,我现在可以非常容易地使用这个类: 在Xcode 7中,我们现在在Objective-C中拥有泛型,所以我假设我可以在Objective-C中使用这个类: 然而,MyArray从未添加到我的<code>项目Swift中。h文件。即使我将其更改为从NSObject继承,它仍然