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

在Swift中使用Objective-C类别的正确方法是什么?

唐弘和
2023-03-14
问题内容

我试图将某些类别方法导入我的Swift文件,但没有任何运气。

ios-Bridging-Header.h:

#import "UIColor+Hex.h"

UIColor + Hex.h

#import <UIKit/UIKit.h>

@interface UIColor (Hex)

+ (UIColor *)colorWithHex:(NSUInteger)hexInt;
+ (UIColor *)colorWithHexString:(NSString *)hexString;

@end

我希望自动完成功能能够揭示UIColor(hexInt: NSUInteger)UIColor(hexString: String)


问题答案:

实际上,您的类别将转换为Swift,如下所示:

extension UIColor {

    init(hex hexInt: Int) -> UIColor

    init(hexString: String) -> UIColor

}

因此,您应该使用:

let color = UIColor(hex: 0xffffff) // instead of hexInt:

let color = UIColor(hexString: "ffffff")

不过,自动完成功能在Beta版软件中可能仍然存在问题。



 类似资料:
  • 本文向大家介绍在Swift中使用Objective-C编写类、继承Objective-C类,包括了在Swift中使用Objective-C编写类、继承Objective-C类的使用技巧和注意事项,需要的朋友参考一下 互用性(互操作性)使开发者可以定义融合了 Objective-C 语言特性的Swift类。编写 Swift 类时,不仅可以继承 Objective-C 语言编写的父类,采用 Objec

  • 问题内容: 我处于需要使用Objective-C类别扩展Swift类的情况。我做了如下的事情: 在“ SomeClass.swift”中: 在“ SomeClass + Extension.h”中: 效果很好。而且,如果我尝试在我的Objective C代码中使用SomeClass扩展,那就很好了。 问题是,如果要在另一个Swift类中使用,则需要将文件放入文件中。 但是这样做会导致循环依赖性,因

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

  • 本文向大家介绍Swift使用Objective-C代码中的Swift类,包括了Swift使用Objective-C代码中的Swift类的使用技巧和注意事项,需要的朋友参考一下 示例 在同一模块中 在名为“ MyModule ”的模块内,Xcode生成一个名为的标头,该标头MyModule-Swift.h将公共Swift类公开给Objective-C。导入此标头以使用Swift类: 相关的构建设置:

  • 问题内容: 在Objective-C中,有一个称为的类方法,该方法在首次加载类时被调用。Swift中的等效项是什么? 问题答案: 在Swift 1.2之前: 编辑: 从Swift 1.2开始,您将无法再覆盖该方法。相反,查看该方法,它的行为与加载不同,它是在类第一次在某处而不是在应用程序初始加载时被调用的

  • 问题内容: 我正在与我的CompSci教授交谈,他建议将所有String 方法编写为: 而不是: 这两行都可以编译,但是我想知道第一种方法的好处是什么?我一直都是后一种方式。错了吗 什么是普通/常规? 问题答案: 第一种方法确保执行比较时不会收到 NullPointerException 。当您尝试在不存在的对象上调用方法时,抛出(发生)此异常。 以下是一些相关的切线:仔细阅读风险自负 不过要注意