存储自定义对象(Swift 中的类)以供 Objective-C 方法访问

用户1904273

我在 Swift 中创建了一个类(我正在学习),用于保存某些值,如下所示:

@objc public class Book: NSObject {
    var title: String = ""
    var date: Date = Date()
    var sku: Float = 0
}

我现在想将这个类存储在一个可以被我的 Objective-C 类访问的属性中。

我尝试在视图控制器中创建一个变量,其中使用该类,如下所示:

var lastBookViewed = Book()

但是,当我尝试使用以下代码将对象保存到属性时,出现错误:

//create instance of book
let myBook = Book()
//gather information about book
lastBookViewed = myBook //THROWS COMPILER ERROR 'Use of Unresolved Identifier lastBookViewed

有没有办法做到这一点?

如果更简单,将对象存储到 Objective-C 文件中的属性也可以工作,但到目前为止我还没有能够让 Objective-C 文件识别在 Swift 中创建的 Book 类,尽管我将 @objc 放在它之前受到推崇的。

编辑

当我尝试使用以下语法在同一个 Swift 文件中的不同 Swift 类(视图控制器类)中创建用于存储自定义 swift 对象的属性或变量时:

var lastBookViewed: Book

编译器警告 VC 类“yourVC 没有初始化程序”

兴奋微生物

转到项目的常规设置。为您的应用选择合适的目标。转到“Build Settings”并切换到“All”,而不是默认的“Basic”。在这里搜索“包装”部分。打开“定义模块”,将“否”更改为“是”。

屏幕 1

当它打开时,我们现在将能够在objective-c 文件中使用swift 类。

  1. 在离开“构建设置”之前,在“包装”部分中查找“产品模块名称”。这很重要,因此请务必记下并准确复制“产品模块名称”。

  2. 接下来转到一个 Objective-c 类,您希望能够在其中访问您的 swift 类。在该类的实现或 .m 文件中,导入这样的标头:

#import "MyProjectModuleName-Swift.h"

这里导入的文件名必须是构建设置中的确切项目模块名称。您想要访问 swift 类的任何 Objective-c 文件都应包含此导入。

  1. 现在值得一提的是使用 swift 类时可能出现的一个潜在问题。Objective-c 无法读取顶级 swift 类。因此,如果您直接使用 swift 类中的方法或变量,它将无法识别。这个问题有一个简单的解决方案。这是为了让你的课堂public
 @objc public class myClass

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Objective C自定义模型实例存储到swift类中以id实例

来自分类Dev

自定义类的Objective-C类别调用方法

来自分类Dev

在Swift中调用自定义的Objective-C方法吗?

来自分类Dev

如何从Swift语言访问Objective-C类方法

来自分类Dev

在Swift中重写Objective C类方法

来自分类Dev

Swift 中的 Objective C 类方法调用

来自分类Dev

Objective-C自定义类

来自分类Dev

Swift-在Objective-C类中访问NSArray

来自分类Dev

无法从Objective-C文件访问Swift类中的变量

来自分类Dev

在Objective C标头中访问Swift类

来自分类Dev

在Swift项目的故事板上使用Objective-C类作为自定义类

来自分类Dev

如何在Swift中调用Objective C类方法

来自分类Dev

无法在Swift中调用特定的Objective-C类方法

来自分类Dev

Swift-Objective-C加载类方法?

来自分类Dev

从Swift类访问Objective-c基类的实例变量

来自分类Dev

如何在Swift类中重写Objective-C类的抽象类级别方法?

来自分类Dev

Objective-C中的抽象方法/类?

来自分类Dev

我可以像在Objective-C中那样为Swift类定义属性的方法吗?

来自分类Dev

如何从Swift类访问Objective-C NSMutableDictionary?

来自分类Dev

如何使用Swift中的协议公开Objective-C对象的私有类方法?

来自分类Dev

用于Objective-C中iOS的自定义键盘

来自分类Dev

在Objective-C中以编程方式访问方法参数

来自分类Dev

在Objective-C中以编程方式访问方法参数

来自分类Dev

NSDate 的自定义类排序属性在 Objective-C 中不起作用

来自分类Dev

无法从.m文件访问Objective-C类的快速扩展中的方法

来自分类Dev

Objective-C类中的Swift协议

来自分类Dev

从Objective C中的Swift类继承

来自分类Dev

在 Swift 类中访问 Objective C AppDelegate 字符串返回 nil

来自分类Dev

如何在Swift类中从Objective C调用单例类方法?

Related 相关文章

  1. 1

    将Objective C自定义模型实例存储到swift类中以id实例

  2. 2

    自定义类的Objective-C类别调用方法

  3. 3

    在Swift中调用自定义的Objective-C方法吗?

  4. 4

    如何从Swift语言访问Objective-C类方法

  5. 5

    在Swift中重写Objective C类方法

  6. 6

    Swift 中的 Objective C 类方法调用

  7. 7

    Objective-C自定义类

  8. 8

    Swift-在Objective-C类中访问NSArray

  9. 9

    无法从Objective-C文件访问Swift类中的变量

  10. 10

    在Objective C标头中访问Swift类

  11. 11

    在Swift项目的故事板上使用Objective-C类作为自定义类

  12. 12

    如何在Swift中调用Objective C类方法

  13. 13

    无法在Swift中调用特定的Objective-C类方法

  14. 14

    Swift-Objective-C加载类方法?

  15. 15

    从Swift类访问Objective-c基类的实例变量

  16. 16

    如何在Swift类中重写Objective-C类的抽象类级别方法?

  17. 17

    Objective-C中的抽象方法/类?

  18. 18

    我可以像在Objective-C中那样为Swift类定义属性的方法吗?

  19. 19

    如何从Swift类访问Objective-C NSMutableDictionary?

  20. 20

    如何使用Swift中的协议公开Objective-C对象的私有类方法?

  21. 21

    用于Objective-C中iOS的自定义键盘

  22. 22

    在Objective-C中以编程方式访问方法参数

  23. 23

    在Objective-C中以编程方式访问方法参数

  24. 24

    NSDate 的自定义类排序属性在 Objective-C 中不起作用

  25. 25

    无法从.m文件访问Objective-C类的快速扩展中的方法

  26. 26

    Objective-C类中的Swift协议

  27. 27

    从Objective C中的Swift类继承

  28. 28

    在 Swift 类中访问 Objective C AppDelegate 字符串返回 nil

  29. 29

    如何在Swift类中从Objective C调用单例类方法?

热门标签

归档