Проблема, с которой я сталкиваюсь, заключается в том, что я не могу заполнить пустой массив данными JSON и не могу найти аналогичную проблему, заданную в StackOverflow.Swift Array не будет заполняться данными JSON
Внутри самой функции я могу получить пустой массив и заполнить массив внутри функции. Затем вызовите функцию печати в функции downloadRestaurantDetails, чтобы просмотреть информацию, которую я проанализировал.
Но я не могу заполнить исходный пустой массив, который находится за пределами функции, чтобы я мог получить заполненный массив и использовать его в другой функции.
import UIKit
import GoogleMaps
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
var placeIDArray = [String]()
var placeID: String!
override func viewDidLoad() {
super.viewDidLoad()
downloadRestaurantDetails {() ->() in
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func downloadRestaurantDetails(completed: DownloadComplete) {
//url is acquired through a file created for global variables
Alamofire.request(.GET,url).responseJSON { (response) -> Void in
if let value = response.result.value {
let json = JSON(value)
//Acquire All place_id of restaurants
if let results = json["results"].array {
for result in results {
if let allPlace_ID = result["place_id"].string {
//Add All place_id's into an array
self.placeIDArray.append(allPlace_ID)
}
}
}
}
// i call this method to check and see if there is anything placed in the array outside of the downloadRestaurantDetails method.
func check() {
if self.placeIDArray.count > 1 {
print(self.placeIDArray)
} else {
print(self.placeIDArray.count)
}
}
В заключение, вопрос, который я хотел бы решить,
- Я хотел бы разобрать place_id и поместить полученные строки в placeIDArray. Я могу анализировать данные и хранить значения внутри объекта IDArray внутри функции. Я не могу хранить анализируемые данные в пустом массиве вне функции. Я думал, что с помощью self.placeIDArray проанализированные данные будут назначены массиву. но, похоже, это не так.
еще смутившись от этого, у любого есть идеал стоит? – lifewithelliott
Где вы пытаетесь получить доступ к значению 'placeIDArray', когда вы проверяете, назначены ли ему данные? – DMan
я создал функцию, чтобы проверить, чтобы увидеть, если я могу получить доступ к данным в массиве и распечатать его на экране отладки , и это дает мне кол 0 однако, когда я напечатать его в функции сразу же после того, как я .placeIDArray.append (allPlace_ID), тогда все элементы печатаются правильно, как я хочу их. так что я оставляю меня, чтобы предположить, что элементы не назначены вне функции. если это правильная логика? – lifewithelliott