Причина: Вы не можете написать respondsToSelector
для функции на основе swift.Есть две причины.
1) В Objective-c у нас есть свойство charValue
в классе NSNumber
вместе с initWithChar
.Тогда как в swift у нас нет таких свойств в классе NSNumber
.
@property (readonly) char charValue;
- (NSNumber *)initWithChar:(char)value NS_DESIGNATED_INITIALIZER;
2) respondsToSelector
принимает только функции Objective-C в качестве аргумента.
Попробуйте написать responds(to: #selector
на NSNumber
, и вы обнаружите, что он принимает только функцию target-c, и у нас нет такого метода в классе Swift NSNumber
.
let numb: NSNumber?
numb?.responds(to: #selector(@objc method))
Скорее, Вы можете использовать быстрое преобразование строки NSNumber, как:
let number: NSNumber?
let numberString = number?.stringValue ?? ""
// Added default variable "" in case of string conversion becomes nil