Нет необходимости указывать nameString = string, просто работайте с [self string] напрямую!
Вот рабочий пример:
string = textField.text;
if ([string length] == 0) {
string = @"World";
}
NSString *greeting = [NSString stringWithFormat:@"Hello, %@!", string];
[label setStringValue:greeting];
Вы увидите, что я изменил initWithFormat на stringWithFormat. Если вы используете stringWithFormat, объект NSString автоматически освобождается, поэтому нам не нужно беспокоиться о его освобождении.
И последнее. Я не вижу необходимости в том, чтобы «строка» была переменной экземпляра, поскольку она просто используется временно ... может быть, лучше просто перейти
NSString *string = textField.text;
и не объявлять его в @interface ... просто мысль.