多次调用meetup api swift

多次调用meetup api swift,swift,api,swift2,meetup,Swift,Api,Swift2,Meetup,我正在尝试从meetup的api中获取事件列表。它在多次请求时崩溃,因为它声明只能请求一次,最多只能请求200次。我获取组,然后使用“urlName”api调用获取该组的事件。结果将是一群聚会小组的一系列事件。这是我的密码 func getEventsFromMeetup(complete: (groups: [Meetup], succes: Bool) -> Void) { var currentUserInterests = [String]() let confi

我正在尝试从meetup的api中获取事件列表。它在多次请求时崩溃,因为它声明只能请求一次,最多只能请求200次。我获取组,然后使用“urlName”api调用获取该组的事件。结果将是一群聚会小组的一系列事件。这是我的密码

func getEventsFromMeetup(complete: (groups: [Meetup], succes: Bool) -> Void) {

    var currentUserInterests = [String]()
    let config = NSURLSessionConfiguration.defaultSessionConfiguration()
    let session = NSURLSession(configuration: config)
    let recommendedBaseUrl = "https://api.meetup.com/recommended/groups?key=\(meetupAPIKey)"
    let url = NSURL(string: recommendedBaseUrl)
    let request = NSMutableURLRequest(URL: url!)
    request.HTTPMethod = "GET"
    session.dataTaskWithRequest(request) { (data, response, error) in

        guard error == nil else {
            print(error)
            complete(groups: [Meetup](), succes: false)
            return
        }

        guard let data = data else {
            print("Error with data")
            complete(groups: [Meetup](), succes: false)
            return
        }

        do {
           let json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments) as! [NSDictionary]
            var groups = [Meetup]()
            CurrentUserFM.sharedInstance.getCurrentUserInterests { (interests) in
                currentUserInterests = interests
                var ints = [String]()
                print(json.count)
                for j in json {
                    let m = Meetup(data: j)
                    ints.append(m.name!)
                    if let i = m.interestName {
                        if currentUserInterests.contains(i) {
                            groups.append(m)
                        }
                    }
                    print("ints: \(ints.count)")
                    print("json: \(json.count)")
                    if Int(ints.count) >= Int(json.count) {
                        dispatch_async(dispatch_get_main_queue(), { 
                            complete(groups: groups, succes: true)
                            return
                        })
                    }
                }
            }
        }catch {
            print(error)
        }
    }.resume()
}

func getEventsForGroups(completionHandler: (meetupEvents: [MeetupEvent]) -> ()) {
    self.getEventsFromMeetup { (groups, success) in
        var meetupEvents1 = [MeetupEvent]()
        var ints = [String]()
        for group in groups {
            let eventBaseUrl = "https://api.meetup.com/\(group.urlname!)?key=\(meetupAPIKey)"
            let url = NSURL(string: eventBaseUrl)
            let request = NSMutableURLRequest(URL: url!)
            let config = NSURLSessionConfiguration.defaultSessionConfiguration()
            let session = NSURLSession(configuration: config)

            session.dataTaskWithRequest(request, completionHandler: { (data, reponse, error) in
                guard error == nil else {
                    print(error)
                    return
                }

                guard let data = data else {
                    print("Error with data")
                    return
                }

                do {
                    let json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments)
                    let m = MeetupEvent()
                    if let name = json["name"] as? String {
                        m.name = name
                    }
                    if let link = json["link"] as? String {
                        m.link = link
                    }
                    if let interestName = group.name {
                        m.interestName = interestName
                    }
                    if let image = json["key_photo"]??["thumb_link"] as? String {
                        m.image = image
                    }

                    meetupEvents1.append(m)
                    ints.append("1")
                    if Int(ints.count) >= Int(groups.count) {
                        dispatch_async(dispatch_get_main_queue(), {
                            completionHandler(meetupEvents: meetupEvents1)
                            return
                        })
                    }
                }catch {
                    print(error)
                }
            }).resume()
        }
    }
}

关于如何从群中获取事件以使应用程序不会因meetup呼叫而崩溃,您有什么建议吗?

如果我正确理解您的问题,您的崩溃率限制为200请求,是否正确?或者你在上面发布的代码中有一行是崩溃的吗?如果我正确理解你的问题,你会崩溃吗?速率限制为200请求,这是正确的吗?或者在你上面发布的代码中有一行是崩溃的吗?