Быстрые булевы литералы (эквивалент 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
}