"сборка XCode и анализирует", жалуется на "s", являющийся возможным мусором.
Который является лучшим решением? A, B, или C?
NSString *s; // A
NSString *s = nil; // B
NSString *s = @""; // C
if(x == 1) s = @"you picked 1";
if(x == 2) s = @"you picked 2";
if(x == 3) s = @"you picked 3";
Я всегда использую
NSString *s = nil;
в качестве значения инициализации по умолчанию. Это более разумно, чем пустая строка (пустая строка - это «вещь», тогда как nil
- неизвестное значение), и поскольку вы можете сообщить nil
в Objective-C, это (обычно ) не вызывает больших проблем, если я как-то забуду дать ему "реальное" значение.