Ничего не произойдет в вашем коде. Я предполагаю, что вы используете ARC (автоматический подсчет ссылок), поэтому вы «освобождаете» его, устанавливая указатель на ноль.
Как это действительно работает, предположим, что у вас есть объект NSString, выделенный в памяти, вы создаете его и назначаете на него указатель.
Итак, теперь ваш указатель указывает на этот объект, что делает дуга: если у объекта больше нет указателя, указывающего на него, то он автоматически освобождается. Предполагая, что у вас есть ТОЛЬКО тот «myvariable» указатель на эту NSString, он будет освобожден, как только вы установите его равным nil.
Если вы снова установите для myvariable значение nil, то вы абсолютно ничего не будете делать с ним, поскольку объект уже был освобожден ранее.
Обратите внимание, что это означает, что если у вас есть ДРУГАЯ переменная, также указывающая на эту NSString, то объект НЕ БУДЕТ освобожден, но моя переменная больше не будет указывать на него.
Я забыл упомянуть, вы можете найти отличное объяснение того, как работает arc в "iOS 5 by tutorials" Рэя Вендерлиха.
PD: если вы используете ARC, вы должны изменить
@ свойство (неатомное, сохранение) NSString * myVariable;
до
@ свойство (неатомное, сильное) NSString * myVariable;