Swift方法返回目标c类中的元组

jar*_*ryd 9 swift

我想从使用swift的方法返回两个对象.

如何在非swift文件中将此方法添加到现有目标c类以从调用方法的位置访问元组?

元组是否需要在快速类中创建?

cod*_*ter 17

元组不兼容.objective c您可以使用Dictionary而不是tuple.From快速文档.

只要与Objective-C兼容,您就可以访问使用@objc属性标记的类或协议中的任何内容.这不包括仅限Swift的功能,例如此处列出的功能:

Generics
Tuple     //Tuple cannot be acesses from objective c
Enumerations defined in Swift
Structures defined in Swift
Top-level functions defined in Swift
Global variables defined in Swift
Typealiases defined in Swift
Swift-style variadics
Nested types
Curried functions
Run Code Online (Sandbox Code Playgroud)

例如,一个将泛型类型作为参数或返回元组的方法将无法从Objective-C中使用.

您不能使用objective c其中tuple包含且无法访问的这些类型,并且它不与任何类型绑定objective c且不兼容objective c.

但是Swift Dictionaries,您可以使用元组来完成所有事情.使用Dictionary而不是元组.

  • 字典要求您以某种方式分享关于存在哪些键以及为这些键存储的类型的知识.结构允许IDE和编译器准确地告诉您返回结构中的内容. (4认同)
  • 不,编译器和 IDE 确切地知道元组中的内容以及它的类型。当字典转移到 Objective-c 时,所有内容都将具有类型 'id' 并且不知道键。使用元组,即使在 Objective-c 中,可用值及其类型仍然是已知的。 (2认同)