在objc文件中使用Swift结构属性

时间:2015-01-17 05:25:31

标签: ios swift

我在我的快速课堂上宣布了一个CLLocationCoordinate Property。喜欢

class SomeClass{
    var abc: CLLocationCoordinate?
    var aaa: CLLocation?
}

但是,当我在一个Objective-c文件中初始化这个类时,它说没有abc属性。但是我的其他属性如aaa存在。我猜它是因为那个abc 是一个结构。我怎么能解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

  

我声明了一个CLLocationCoordinate属性

不,你不是。您声明了CLLocationCoordinate?属性。这是一个非常不同的事情。一个可选的包装结构对Objective-C毫无意义。

无论如何,首先是一个CLLocationCoordinate?核心位置定义CLLocationCoordinate2D类型。但是CLLocationCoordinate必须是你组成的东西。所以:

  1. 您不应该编写以CL开头的名称。该前缀属于Core Location,而不是您。

  2. 如果它是一个结构,那就是你的问题。 Swift结构体不是Objective-C中的对象,因此Objective-C无法理解它,包含一个Optional或者不包含。

  3. 如果你的意思是CLLocationCoordinate2D?,那仍然无法发挥作用,因为包含在Optional中的结构对Objective-C没有意义。