Ios 通过swift中的自定义注释类强制转换可选值

Ios 通过swift中的自定义注释类强制转换可选值,ios,json,swift,swift2,Ios,Json,Swift,Swift2,我有一个自定义类,用于基于JSON数组在地图上创建客户PIN。除了标题、副标题和坐标外,我还从数组中提取一个唯一标识符(规程),并将其与pin一起传递。标识符是从数组中正确创建的,但在下一个视图控制器中读取它时遇到问题。尽管它看起来是一个字符串,但每当我尝试在后续视图控制器中打印标识符时,它总是作为可选项打印 例如,我可以将其赋值为“1”,但如果我尝试打印(或将其添加到另一个JSON帖子中),它会一直变为“可选(1)”,尽管我尝试在我能想到的所有位置将其转换为字符串(它说该值已经是字符串)。我的

我有一个自定义类,用于基于JSON数组在地图上创建客户PIN。除了标题、副标题和坐标外,我还从数组中提取一个唯一标识符(规程),并将其与pin一起传递。标识符是从数组中正确创建的,但在下一个视图控制器中读取它时遇到问题。尽管它看起来是一个字符串,但每当我尝试在后续视图控制器中打印标识符时,它总是作为可选项打印

例如,我可以将其赋值为“1”,但如果我尝试打印(或将其添加到另一个JSON帖子中),它会一直变为“可选(1)”,尽管我尝试在我能想到的所有位置将其转换为字符串(它说该值已经是字符串)。我的JSON post抛出错误,因为它没有正确填充post字符串

知道为什么这仍然是可选的吗?当Xcode说它已经是字符串时,如何将其转换为字符串

class MyAnnotation: NSObject, MKAnnotation {
    let title: String!
    let subtitle: String!
    let discipline: String!
    let coordinate: CLLocationCoordinate2D
    let image: UIImage!

    init(title: String, subtitle: String, discipline: String, coordinate: CLLocationCoordinate2D) {
        self.title = title
        self.subtitle = subtitle
        self.discipline = discipline
        self.coordinate = coordinate
        self.image = UIImage(named: "Icon-40.png")

        super.init()
    }

您在代码中的什么地方发现了问题?“尽管它看起来是一个字符串,但每当我尝试在随后的视图控制器中打印标识符时,它总是作为可选项打印出来。”当我收到来自JSON post到我的服务器的响应时,问题就来了。我正试图将徒弟对象放到帖子中,因为它是可选的,服务器无法正确读取它。请向我们展示您的代码的那部分…我解决了我的问题。我无意中将原始JSON响应中的值设置为
规程:(“\(value)”)为!String
而不是
规程:(值)作为String
感谢您的提示