Swift 3:扩展名可能不包含存储的属性

时间:2016-12-22 07:12:21

标签: json properties swift3 httprequest

我正在尝试测试Apple Swift 3文档(https://developer.apple.com/swift/blog/?id=37)中的一些代码,但我得到两个错误,说"扩展名可能不包含存储的属性"。

这是代码:

import Foundation

struct Restaurant {
enum Meal: String {
    case breakfast, lunch, dinner
}

let name: String
let location: (latitude: Double, longitude: Double)
let meals: Set<Meal>
}

extension Restaurant {
private let urlComponents: URLComponents // base URL components of the web service
private let session: URLSession // shared session for interacting with the web service

static func restaurants(matching query: String, completion: @escaping ([Restaurant]) -> Void) {
    var searchURLComponents = urlComponents
    searchURLComponents.path = "/search"
    searchURLComponents.queryItems = [URLQueryItem(name: "q", value: query)]
    let searchURL = searchURLComponents.url!

    session.dataTask(url: searchURL, completion: { (_, _, data, _)
        var restaurants: [Restaurant] = []

        if let data = data,
            let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
            for case let result in json["results"] {
                if let restaurant = Restaurant(json: result) {
                    restaurants.append(restaurant)
                }
            }
        }

        completion(restaurants)
    }).resume()
}
}

我在urlComponents行和会话行中收到错误。

0 个答案:

没有答案