Что означает "некоторая строка" в target-c? - PullRequest
9 голосов
/ 07 июня 2009

Я только начинаю с разработки для iphone и наткнулся на пример кода, который использовал @ "somestring"

someLabel.txt = @"string of text";

Зачем строке нужен символ @? Я предполагаю, что это какой-то ярлык для создания объекта?

Ответы [ 3 ]

15 голосов
/ 07 июня 2009

Создает объект NSString с этой строкой, в отличие от стандартного c char *, который будет создан без '@'

11 голосов
/ 07 июня 2009

В Objective-C синтаксис @ "foo" является неизменным, буквальным экземпляром NSString.

0 голосов
/ 07 июня 2009

Просто интересное примечание ... Литералы NSString, созданные с использованием нотации @ "...", не autoreleased. По сути, они просто торчат, пока ваша программа не завершится.

Только предостережение о том, что если вы хотите сохранить контроль над тем, будет ли этот объект выпущен (освобожден) в будущем, вы можете рассмотреть возможность использования чего-то вроде:

[NSString stringWithString:@"..."]; 

... вместо этого. Это создаст автоматически выпущенную версию той же строки, которая будет освобождена из памяти в следующий раз, когда «пул автоматического выпуска будет очищен».

Просто пища для размышлений.

Cheers-

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...