swift2 我的swift项目上的编码错误缺少预期的/参数&&分隔符

dddzy1tm  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(146)

我有一个关于我的项目的问题,它不断要求预期的参数类型以下: . &预期的分隔符我留下了问题的评论,就在我被要求插入它们的地方。我感谢的帮助。

// expected parameter type following ':' &             expectedseperator ,
        func performGetRequest(targetURL: NSURLRequest, completion: { (data, HTTPStatusCode, error) -> Void in

            if HTTPStatusCode == 200 && error == nil {

            // Convert the JSON data to a dictionary.
            let resultsDict = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as! Dictionary<NSObject, AnyObject>

            let items: AnyObject! = resultsDict["items"] as AnyObject!
            let firstItemDict = (items as! Array<AnyObject>)[0] as! Dictionary<NSObject, AnyObject>

            let snippetDict = firstItemDict["snippet"] as! Dictionary<NSObject, AnyObject>

            var desiredValuesDict: Dictionary<NSObject, AnyObject> = Dictionary<NSObject, AnyObject>()
            desiredValuesDict["title"] = snippetDict["title"]
            desiredValuesDict["description"] = snippetDict["description"]
            desiredValuesDict["thumbnail"] = ((snippetDict["thumbnails"] as! Dictionary<NSObject, AnyObject>)["default"] as! Dictionary<NSObject, AnyObject>)["url"]

            desiredValuesDict["playlistID"] = ((firstItemDict["contentDetails"] as! Dictionary<NSObject, AnyObject>)["relatedPlaylists"] as! Dictionary<NSObject, AnyObject>)["uploads"]

            self.channelsDataArray.append(desiredValuesDict)

            self.tblVideos.reloadData()

            ++self.channelIndex
            if self.channelIndex < self.desiredChannelsArray.count {
            self.getChannelDetails(useChannelIDParam)
            }
            else {
            self.viewWait.hidden = true
            }

            } else {
            println("HTTP Status Code = \(HTTPStatusCode)")
            println("Error while loading channel details: \(error)") }

            })
    }        
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
vawmfj5a

vawmfj5a1#

看起来你试图调用函数performGetRequest,但是你在开始的时候用func定义了它。
如果这不是你的意图,也许你正在尝试定义函数,但是你必须小心完成处理程序。你可以看到正确的方法来完成它。
最后,这里有一个函数的question,它具有相同的名称和类似的问题,我不知道你的代码是否基于这个,但是看看这个问题和它的答案可能会更清楚。

nhaq1z21

nhaq1z212#

var desiredChannelsArray = ["eminemvevo", "Google", "disney"]

    var channelIndex = 0

    var channelsDataArray: Array<Dictionary<NSObject, AnyObject>>.Type?

    override func viewDidLoad() {
        super.viewDidLoad()

    }  class helper {
        func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) {

            let request = NSMutableURLRequest(URL: targetURL)
            request.HTTPMethod = "GET"

            let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()

            let session = NSURLSession(configuration: sessionConfiguration)

            let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error)})})

            task.resume()
        }
    }

    func getChannelDetails(useChannelIDParam: Bool) {
        var urlString: String!
        if !useChannelIDParam {
            urlString = "https://www.googleapis.com/youtube/v3/channels?part=contentDetails,snippet&forUsername=\(desiredChannelsArray[channelIndex])&key=\(apiKey)"
        } else {
        }

        let targetURL = NSURL(string: urlString)

        func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) {

            if HTTPStatusCode == 200 && error == nil{
                // Convert the JSON data to a dictionary.

                let resultsDict = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as! Dictionary<NSObject, AnyObject>}

            let items: AnyObject! = resultsDict["items"] as AnyObject!
            let firstItemDict = (items as! Array<AnyObject>)[0] as! Dictionary<NSObject, AnyObject>

            let snippetDict = firstItemDict["snippet"] as! Dictionary<NSObject, AnyObject>

            var desiredValuesDict: Dictionary<NSObject, AnyObject> = Dictionary<NSObject, AnyObject>()
            desiredValuesDict["title"] = snippetDict["title"]
            desiredValuesDict["description"] = snippetDict["description"]
            desiredValuesDict["thumbnail"] = ((snippetDict["thumbnails"] as! Dictionary<NSObject, AnyObject>)["default"] as! Dictionary<NSObject, AnyObject>)["url"]

            desiredValuesDict["playlistID"] = ((firstItemDict["contentDetails"] as! Dictionary<NSObject, AnyObject>)["relatedPlaylists"] as! Dictionary<NSObject, AnyObject>)["uploads"]

            self.channelsDataArray.append(desiredValuesDict)

            self.tblVideos.reloadData()

            ++self.channelIndex
            if self.channelIndex < self.desiredChannelsArray.count {
                self.getChannelDetails(useChannelIDParam)
            }
            else {
                self.viewWait.hidden = true
            }
        } else {

            print("HTTP Status Code = \(HTTPStatusCode)")
            print("Error while loading channel details: \(error)") }
    }
}
}

相关问题