Нет ничего плохого в том, что вы делаете. Локальная переменная abc
(которая является указателем на объект) захватывается блоком, а abc
внутри блока будет указателем на тот же объект. Предполагая, что это неизменяемая строка или вы никогда не изменяете строку, она должна быть той же самой строкой, которая передается в setAbc:
.
Учитывая, что postURL:
является асинхронной операцией (т. Е. Блок завершения вызывается через некоторое неопределенное время позже), я подозреваю, что вы делаете ложные предположения о порядке операций. Блок завершения, который делает setAbc:
, возможно, еще не был вызван к тому времени, когда вы делаете getAbc
, и поэтому вы получаете начальное значение перед его установкой.