swift,如何从另一个函数中检索字符串?

时间:2015-11-12 00:58:51

标签: swift

我希望能够在我的一个函数中检索这个字符串......但那不是我以前做过的那个问题。但是这次将字符串定义为并且如果让它进入函数内部并且无法在函数内的任何其他位置找到。我希望能够在该函数之外使用相同的值(fileloaction)字符串,但无法找到它。 这是我的代码:

    func extract_json(data:NSString)
{
    var parseError: NSError?
    let jsonData:NSData = data.dataUsingEncoding(NSASCIIStringEncoding)!
    let json: AnyObject?
    do {
        json = try NSJSONSerialization.JSONObjectWithData(jsonData, options: [])
    } catch let error as NSError {
        parseError = error
        json = nil
    }
    if (parseError == nil)
    {
        if let works_list = json as? NSArray
        {
            for (var i = 0; i < works_list.count ; i++ )
            {
                if let fileList = works_list[i] as? NSDictionary
                {
                    if let fileName = fileList["filename"] as? String
                    {
                        TableData1.append(fileName)

                        //if let country_code = country_obj["post_text"] as? String
                        //{
                            //TableData1.append(country_name + " [" + country_code + "]")
                        //}
                    }

                    this is the function 
                    if let filelocation = fileList["filelocation"] as? String
                    {
                        TableData1.append(filelocation)


                    }

                    if let mime = fileList["mime"] as? String
                    {
                        TableData1.append(mime)


                    }
                }
            }
        }
    }

    do_table_refresh();
}

该字符串fileloaction无法在该函数的任何其他位置找到,因此我无法在其他地方使用它,我需要在这里使用:

        override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        extract_json(filelocation)

       // selectedFileLocation = "http://192.168.1.14:8080/Works/uploads/1445557983_putty.docx"

        selectedFileLocation = filelocation


        if(segue.identifier == "detailView") {

            let vc = segue.destinationViewController as! DisplayWorksViewController
            vc.selectedFileLocation = selectedFileLocation
            vc.selectedLabel = selectedLabel
            print("selectedFileLocation = \(vc.selectedFileLocation)")
        }
    }

1 个答案:

答案 0 :(得分:1)

如果阻塞,则fileLocation变量的范围仅限于函数 extract_json 。 要在视图控制器的所有函数/方法中访问它的值,请在控制器中创建变量并为其分配fileLocation值。稍后使用该变量进行访问。

希望它有所帮助。