Arrays 仅在实际设备上使用下标错误不明确

Arrays 仅在实际设备上使用下标错误不明确,arrays,json,swift,subscript,Arrays,Json,Swift,Subscript,当我尝试在iPhone上运行下面的代码时,出现以下错误 rrr.swift:356:72: Ambiguous use of 'subscript' 奇怪的是,只有当我想在手机上运行应用程序时,才会发生这种情况,不管它是如何工作的 有3行代码导致错误,其中。我在下面的代码中用大写字母标注了它们。 我试图访问JSON数组中的数组属性,我怀疑我做得不对,但不知道如何修复它 如何在没有下标错误的情况下检索这些属性 self.restApi.getSchoolDetails(schoolId) {r

当我尝试在iPhone上运行下面的代码时,出现以下错误

rrr.swift:356:72: Ambiguous use of 'subscript'
奇怪的是,只有当我想在手机上运行应用程序时,才会发生这种情况,不管它是如何工作的

有3行代码导致错误,其中。我在下面的代码中用大写字母标注了它们。 我试图访问JSON数组中的数组属性,我怀疑我做得不对,但不知道如何修复它

如何在没有下标错误的情况下检索这些属性

 self.restApi.getSchoolDetails(schoolId) {responseObject, error in
        // use responseObject and error here

         self.schoolDetailsCollection = NSDictionary(dictionary: responseObject! as! [String : AnyObject])
         print(self.schoolDetailsCollection)

        if let response = responseObject as? NSDictionary {
           //parse the response object
            self.schoolDetailsList = (response as? NSDictionary)!

            //assigning all values to shareData class
            self.shareData.sco_id = response["result"]!["sco_id"] as!NSInteger
            self.shareData.address = response["result"]!["address"] as!String
            self.shareData.name = response["result"]!["name"] as! String
            print("school name")
            print(self.shareData.name)
            self.shareData.intro = response["result"]!["intro"] as! String
           self.shareData.sell_point = response["result"]!["sell_point"] as! String
            self.shareData.city = response["result"]!["city"] as! String
            self.shareData.cou_id = response["result"]!["cou_id"] as! String

            //get images from the nested array in the json array
            /THESE THREE LINES CAUSE THE ERROR SUBSRCIPT
             self.shareData.image1 = response["result"]!["images"][0]! as! String
            self.shareData.image2 = response["result"]!["images"]![1] as! String
            self.shareData.image3 = response["result"]!["images"]![2] as! String

            print(self.shareData.image1)
            print(self.shareData.image2)
            print(self.shareData.image3)



            //open next controller after all info has been set correctly
            //info is being passed by Singleton class Sharedata
            if let COBezierDemoViewController = self.storyboard!.instantiateViewControllerWithIdentifier("COBezierDemoViewController") as? COBezierDemoViewController {
                self.presentViewController(COBezierDemoViewController, animated: true, completion: nil)
            }

        }

    }

}
JSON文件:

{
result =     {
    address = "223 Vincent St, West Perth WA 6005, Australia";
    city = Perth;
    "cou_id" = AU;
    "cur_id" = "";
    environment = R;
    financed = "<null>";
    images =         (
        "Phoenix_Academy_1.jpeg",
        "Phoenix_Academy_3.jpeg",
        "Phoenix_Academy_2.jpeg"
    );
    intro = "Our language school in Perth has a modern campus and a spacious garden. The language school is located 10 minutes north from the city center. You can reach the city center and the famous bea
{
结果={
地址=“澳大利亚西珀斯市文森特街223号,邮编6005”;
城市=珀斯;
“cou_id”=AU;
“cur_id=”;
环境=R;
融资=”;
图像=(
“凤凰城学院1.jpeg”,
“Phoenix_Academy_3.jpeg”,
“凤凰城学院2.jpeg”
);
简介=“我们在珀斯的语言学校拥有现代化的校园和宽敞的花园。语言学校位于市中心以北10分钟的路程。您可以到达市中心和著名的bea

当您提示此行中出现错误时:

 self.shareData.image1 = response["result"]!["images"][0]! as! String
错误:

错误是在任何对象中实现的
[0]
下标

response["result"]!["images"] // this is returning Optional<AnyObject> which do not have subscript option.

Thx非常有用。效果很好,有助于更好地理解我
    let images  = response["result"]? ["images"] as? [String]
    images?.flatMap({ $0 }).forEach {
    print($0) // Phoenix_Academy_1.jpeg, Phoenix_Academy_3.jpeg, Phoenix_Academy_2.jpeg
   }