Reputation: 89
This line in my code is where my app keeps crashing only upon the release build.
self.setup.monthByInt = [1:"January", 2:"February", 3:"March", 4:"April", 5:"May", 6:"June", 7:"July", 8:"August", 9:"September", 10:"October", 11:"November", 12:"December"]
func updateMonthArrayForCircle(){
self.setup.monthByYear = ["January":0, "February":0, "March":0, "April":0, "May":0, "June":0, "July":0, "August":0, "September":0, "October":0, "November":0, "December":0]
self.setup.monthByInt = [1:"January", 2:"February", 3:"March", 4:"April", 5:"May", 6:"June", 7:"July", 8:"August", 9:"September", 10:"October", 11:"November", 12:"December"]
}
self.setup
references a struct where I store the original array with the same value in a [Int:String]
initialized object.
struct initialize {
let largeFrame: CGRect = CGRect(x: 0, y: 0, width: 130, height: 130)
let smallFrame: CGRect = CGRect(x: 15, y: 25, width: 100, height: 100)
let screenSize: CGRect = UIScreen.main.bounds
var month: [String] = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
var monthByYear: [String:Int] = ["January":0, "February":0, "March":0, "April":0, "May":0, "June":0, "July":0, "August":0, "September":0, "October":0, "November":0, "December":0]
var monthPure: [String] = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
var monthByInt: [Int:String] = [1:"January", 2:"February", 3:"March", 4:"April", 5:"May", 6:"June", 7:"July", 8:"August", 9:"September", 10:"October", 11:"November", 12:"December"]
var intByMonth: [String:Int] = ["January":1, "February":2, "March":3, "April":4, "May":5, "June":6, "July":7, "August":8, "September":9, "October":10, "November":11, "December":12]
var monthIndex: Int = 7
}
The code works fine in debug mode.
Error:
Upvotes: 2
Views: 87
Reputation: 547
Ok, so the reason for your problem is because you are using escaping closures. The function returns before the completion handler is called.
Here is the solution:
sync(completionHandler: { [weak self] (success) -> Void in
if success {
self?.delegate?.amareUserDone()
}
})
Upvotes: 1