Ios obj-c类中未知的swift属性

Ios obj-c类中未知的swift属性,ios,swift,Ios,Swift,我在swift类中声明了一个属性var坐标:CLLocationCoordinate2D? 但是我在obj-c类中找不到这个属性。我试图在类之前添加@obj,但它不起作用。问题是您声明了一个可选的属性(?),这是一个纯Swift构造。除非特别桥接,否则目标C类无法访问它们,例如。您无法访问实例变量,因为坐标:CLLocationCoordinate2D未与目标C桥接。而不是声明CLLocationCoordinate2D,您可以将纬度和经度声明为NSNumber类型,然后使用它们生成二维坐标 v

我在swift类中声明了一个属性
var坐标:CLLocationCoordinate2D?

但是我在obj-c类中找不到这个属性。我试图在类之前添加
@obj
,但它不起作用。

问题是您声明了一个
可选的
属性(
),这是一个纯
Swift
构造。除非特别桥接,否则
目标C
类无法访问它们,例如。

您无法访问实例变量,因为坐标:CLLocationCoordinate2D未与目标C桥接。而不是声明CLLocationCoordinate2D,您可以将纬度和经度声明为NSNumber类型,然后使用它们生成二维坐标

var lat: NSNumber?
var lon: NSNumber?
然后在Objc类中指定值,如下所示:

switObject.lat = @3;
switObject.lon = @5;

有关详细信息,请检查此链接

Obj-C不支持可选结构。但如果将其设置为非可选,则会编译:

import CoreLocation

class Class : NSObject
{
    dynamic var coordinate:CLLocationCoordinate2D // no `?`: non-optional
    override init()
    {
        coordinate = CLLocationCoordinate2D() // it's not optional, so you must initialize `coordinate`
    }
}

如果您将其设置为非可选,它将起作用。(
CLLocationCoordinate2D