Знак @ перед строковым литералом означает, что строка является экземпляром NSString.
@"Hello" <-- NSString object
"Hello" <-- Null-terminated char array (C-string)
Вы даже можете отправлять ему сообщения:
[@"Hello" stringByAppendingString:@" World!"]
Вы будете использоватьNSString объекты чаще, чем C-строки.
Если вы хотите преобразовать C-строку в объект NSString (если вы используете библиотеки C, которые, например, возвращают такие строки), вы можете использовать это:
char *myCstring = "Hello, World!";
NSString *myString = [NSString stringWithUTF8String:myCstring];
О двух перьях: на самом деле вам вообще не нужны перья, но Apple нравится снижать производительность, используя перо, которое имеет только одно окно.Я не знаю, почему они это делают, но вы можете создать окно в коде с одной строкой, которая компилируется и работает намного быстрее.
В вашем методе applicationDidFinishLaunching:
:
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = [[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil] autorelease];
// now you can remove the MainWindow.xib nib.
Лично я предпочитаю вообще не использовать перья, но это свой выбор.