Листы действий и оповещения обрабатываются асинхронно. В вашем случае сообщение [dialog show] просто планирует событие show для некоторого более позднего выполнения (обрабатывается основным циклом выполнения). Если вы введете несколько NSLog (), вы увидите, что сообщение [show] возвращается почти сразу, и в этот момент ваш пользователь еще не ввел никаких данных, текст nameField пуст, и это преобразуется в int из 0 .
Требуется блокирующее модальное диалоговое окно с таблицами действий ввода и предупреждениями, которые не предназначены для ввода пользователем после нажатия кнопок «Да / Нет / Отмена». Вам придется составить собственное представление: не слишком сложно, но это потребует больше работы, чем использование листа действий / оповещения.