"@ TRUE" в Objective-C - PullRequest
       21

"@ TRUE" в Objective-C

3 голосов
/ 29 апреля 2019

Недавно я видел этот код:

WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
[configuration.preferences setValue:@TRUE forKey:@"xxxx"];

Что означает @TRUE? Я вижу эту конструкцию впервые.

Я знаю, что YES равно true и

@YES равно NSNumber nubmerWithBool, но что означает @TRUE?

Вопрос StackOverflow с примером с использованием конструкции "@TRUE"

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

Если вы выполняете предварительную обработку:

NSNumber *test = @TRUE;

, то получается

NSNumber *test = @1;

(буквальный лязг для [NSNumber numberWithInt:1]).

, что логично, учитываяTRUE предварительно обработан до 1.

Это может быть легче увидеть на:

#define MY_STRING "my_string"

NSString *string = @MY_STRING;

, который предварительно обрабатывается до:

NSString *string = @"my_string";
1 голос
/ 29 апреля 2019

Это литерал NSNumber, способ создания NSNumber экземпляров из скалярных литеральных выражений.

С Документация Clang 9 :

В Objective-C любой символ, числовой или логический литерал с префиксом '@' будет преобразован вуказатель на объект NSNumber, инициализированный этим значением.Суффиксы типа Си могут использоваться для контроля размера числовых литералов.

...