Быстрые булевы литералы (эквивалент Obj-C @YES @NO)

В Objective-C вы можете ввести @YES вместо [NSNumber numberWithBOOL:YES]. Это делает гораздо более аккуратный код.

В Swift мне нужно написать NSNumber.numberWithBool(true), что довольно уродливо.

Есть ли эквивалент @YES и @NO в Swift?

Заранее благодарим за помощь!

Ответы

Ответ 1

это true и false

xcrun swift
Welcome to Swift!  Type :help for assistance.
  1> import Foundation
  2> var t : NSNumber = true
t: __NSCFBoolean = {}
  3> var f : NSObject = false
f: __NSCFBoolean = {}
  4>

читайте это: https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html#//apple_ref/doc/uid/TP40014216-CH6-XID_43

Swift автоматически соединяет определенные типы родных чисел, такие как Int и Float, с NSNumber. Этот мост позволяет создавать NSNumber из одного из этих типов

Все следующие типы автоматически соединяются с NSNumber:

  • Int
  • UInt
  • Float
  • Дважды
  • Bool

Ответ 2

Swift автоматически соединяет определенные типы родных номеров, такие как Int и Float, в NSNumber

"Использование Swift с Cocoa и Objective-C" (iBook).

let foo : NSNumber = true
let bar = NSNumber(value: false)

Ответ 3

У вас нет Да или нет в Swift, Bool true false у вас есть.

Если вы используете Objc-C и возвращаете функцию вызова Yes или No, вы можете использовать этот

example
// isReady return Yes Or no of Objc-C

if let isReady = object?.isReady {
 //is ready = true or false of your object
}