2016-04-06 2 views
1

Я делаю запрос HTTP, в котором я должен отправить значение bool. Я попытался с ними обоими.@ (ДА) vs [Номер NSNumberWithBool: YES]

И оба работают одинаково. Я смущен, что лучше? и есть ли их разница между ними?

+0

"лучше" для чего? –

ответ

3

@(YES) является литералом для того, чтобы делать то же, что и [NSNumber numberWithBool:YES]. Я не знаю, будет ли производительность литералов немного медленнее, чем прямой вызов.

2

Первый - literal. Другой создается через инициализатор convienience.

В конечном итоге они становятся объектом одного и того же типа с одним и тем же содержимым, но я подозреваю, что первое вам легче (и другим людям, смотрящим ваш код), чтобы читать.

2

Нет никакой разницы между двумя методами, с тобой должно быть хорошо. Я предпочитаю, однако, [NSNumber numberWithBool:YES], так как это более читаемо, если вы вернетесь в свой код для отладки. @ (Да) буквальный синтаксис NSNumber, ковшики точно так же, когда вы используете @ «строка», которая создает NSString для вас

2

Nope.The компилятор преобразует @YES в [NSNumber numberWithBool:YES].

2

@ (ДА) - характеристики компилятора. Фактически, @ (ДА), преобразованный в [NSNumber numberWithBool: YES], нет никакой разницы в производительности. Он предназначен для удобства и удобочитаемости (аналогично @ [], @ {}).

-1

Чтобы отправить BOOL попробовать это: [NSNumber numberWithInt:1]