SwiftyJSON ArrayValue ограниченное количество объектов
Я столкнулся со странной проблемой, пытаясь получить JSON
который имеет массив JSON
внутри. API сервера хорош, так как приложение Android и веб-сайт получают правильные данные, но в iOS я получаю только 50 объектов или меньше в этом массиве. Если массив содержит менее 50 объектов - я получаю правильные данные. Может ли это быть как-то связано с SwityJSON
ограничения, или что-то еще, что не позволяет мне получить весь JSON? Или это 100% проблема с сервером?
Вот мой код, но я уверен, что все должно быть в порядке.
class func requestSelection(id: String, handler: @escaping (Selection?) -> Void) {
let url = "selections/" + id
APIModel.shared.requestWithLocation(.post, URL: url, parameters: nil) { data in
guard let `data` = data else {
handler(nil)
return
}
let selection = data["selection"].to(type: Selection.self) as? Selection
//I print "list" and its count is less or equals 50
selection?.restaurants = data["selection"]["list"].to(type: Restaurant.self) as? [Restaurant]
handler(selection)
}
}
func requestWithLocation(_ httpmethod: Alamofire.HTTPMethod, URL: String, parameters: [String: AnyObject]?, completionHandler: @escaping CompletionHandler) {
let parametersWithLocation = self.addLocationTo(parameters: parameters)
let url = self.serverAddress + "/" + URL
self.alamofireRequest(url: url, method: httpmethod, parameters: parametersWithLocation) { data in
completionHandler(data)
}
}
private func addLocationTo(parameters: [String: AnyObject]?) -> [String: AnyObject] {
var location: [String: Double] = [:]
let locationManager = CLLocationManager()
if (CLLocationManager.authorizationStatus() == .authorizedWhenInUse || CLLocationManager.authorizationStatus() == .authorizedAlways) && locationManager.location != nil {
location = [
"lon": locationManager.location!.coordinate.longitude,
"lat": locationManager.location!.coordinate.latitude,
]
}
var parametersWithLocation = parameters ?? [:]
parametersWithLocation["location"] = location as AnyObject
return parametersWithLocation
}
private func alamofireRequest(url: String, method: HTTPMethod, parameters: [String: AnyObject]?, completionHandler: @escaping CompletionHandler) {
Alamofire.request(url, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: User.shared.header).validate().responseJSON { response in
guard let data = response.result.value else {
print(response.result.error as NSError? as Any, url)
completionHandler(nil)
return
}
//debugPrint(JSON(data), url)
completionHandler(JSON(data))
}
}