在我的Objective-C应用程序中有一个失败的情况,其中(NSDate*)指向CFString并在调用date方法时崩溃.
我正在Swift中编写一个单元测试来模拟这种情况,但由于Swift的类型安全性,它似乎是不可能的.我已经编写了一个Objective-C工厂类来创建乱搞对象,但我想知道是否有人知道在Swift中强制非法类型转换的方法.就像在运行时不会失败的版本一样:
obj.date = NSString() as! NSDate
Run Code Online (Sandbox Code Playgroud)
as!将始终执行运行时检查,并将unsafeDowncast()在调试版本中执行运行时检查(但不是发布版本).
要始终跳过运行时检查,请使用unsafeBitCast():
let myString : NSString = "Hello"
let myDate : NSDate = unsafeBitCast(myString, NSDate.self)
NSLog("%@", myDate) // "Hello"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |