Я пытаюсь вызвать случайное значение в пределах моего массива в мой запрос, где он говорит: «ObjectId», но я получаю сообщение об ошибке "EXC_BAD_INSTRUCTION"
, где он говорит let votes = voteCount1["votes"] as Int
. Он ниже моего IBAction
с функцией addVote1
.Swift - ошибка при вызове случайного значения в массиве
Куда я иду не так? Я пытаюсь получить значения для каждой переменной, которые находятся в пределах определенной строки в моем контроллере данных Parse (каждый с определенным объектным идентификатором), и отправить голосование соответствующей переменной внутри этой строки, но я получаю сообщение об ошибке. Единственный способ для меня не получить ошибку, если я конкретно определяю objectId вместо того, где он говорит «objectId» в query.getObjectInBackgroundWithId("objectId")
. Где я могу ошибиться?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var voteCount1 = PFObject(className: "VoteCount")
voteCount1["choices"] = 2
voteCount1["votes"] = Int()
voteCount1["votes2"] = Int()
voteCount1["optionName"] = String()
voteCount1["optionName2"] = String()
var voteCount2 = PFObject(className: "VoteCount2")
voteCount2["choices"] = 3
voteCount2["votes"] = Int()
voteCount2["votes2"] = Int()
voteCount2["votes3"] = Int()
voteCount2["optionName"] = String()
voteCount2["optionName2"] = String()
voteCount2["optionName3"] = String()
var voteCount3 = PFObject(className: "VoteCount3")
voteCount3["choices"] = 4
voteCount3["votes"] = Int()
voteCount3["votes2"] = Int()
voteCount3["votes3"] = Int()
voteCount3["votes4"] = Int()
voteCount3["optionName"] = String()
voteCount3["optionName2"] = String()
voteCount3["optionName3"] = String()
voteCount3["optionName4"] = String()
let array = ["BiEM17uUYT", "TtKGatVCi9"]
let randomIndex = Int(arc4random_uniform(UInt32(array.count)))
let objectId = array[randomIndex]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var pollResults1: UILabel!
@IBAction func addVote1(sender: AnyObject) {
var query = PFQuery(className: "VoteCount")
query.getObjectInBackgroundWithId("objectId") {
(voteCount1: PFObject!, error: NSError!) -> Void in
if error != nil {
NSLog("%@", error)
} else {
voteCount1.incrementKey("votes")
voteCount1.saveInBackgroundWithTarget(nil, selector: nil)
}
let votes = voteCount1["votes"] as Int
let votes2 = voteCount1["votes2"] as Int
self.pollResults1.text = "\(votes)"
}
}
}
Добавить контрольную точку исключения и получить больше информации о том, где именно это происходит –