iOS callback fires twice?