Итак, при быстром изучении я столкнулся с проблемой добавления значений в свойство массива. Когда я пытаюсь напечатать первое значение массива после добавления к нему значения, я получаю ошибку индекса за пределами границ. Как добавить значение в свойство массива, доступное для всего класса?Swift Properties
class HomeViewController: UIViewController {
var geofences = [Geofence]()
override func viewDidLoad() {
super.viewDidLoad()
getFences()
print(self.geofences[0])
}
func getFences() {
var query = PFQuery(className:"Geofence")
query.whereKey("username", equalTo: "Peter")
query.findObjectsInBackgroundWithBlock {
(fences: [PFObject]?, error: NSError?) -> Void in
if error == nil && fences != nil {
if let fences = fences {
for (index, element) in fences.enumerate() {
var unique_id = element.objectId
var fence_radius = element["radius"] as! Int
var fence_name = element["name"] as! String
var lat = element["centerPoint"].latitude
var lon = element["centerPoint"].longitude
var center = CLLocationCoordinate2D(latitude: lat, longitude: lon)
var new_fence: Geofence? = Geofence(uniqueID: unique_id!, radius: fence_radius, centerPoint: center, name: fence_name)
self.geofences.append(new_fence!)
}
}
} else {
print(error)
}
}
}
EDIT: Кажется, я упростил проблему. Вот код, который вызывает ошибку индекса за пределами границ. Когда я извлекаю geofence из Parse, массив geofences заполняется, но как только он выйдет из метода getFences, массив опустеет.
Я не получаю индекс за пределами ошибки с этим кодом. – mn1
Вы уверены, что индекс за пределами ошибки указан в коде, который вы опубликовали? – JAL
Я опубликовал код, который, как я думал, был похож на мою проблему, но, похоже, это было упрощено. Я отправил точный код, с которым я работаю. – TheRunner565