快速将字符串转换为 AnyObject

Ade*_*el 5 casting swift

我有一个静态字符串变量

struct numb {

    static var selectedNumber: String = String()

}
Run Code Online (Sandbox Code Playgroud)

我正在尝试解包(同时将其转换为AnyObject)值并将其分配给messageComposeViewController

 if let textMessageRecipients :AnyObject  =  numb.selectedNumber 
    {
     messageComposeVC.recipients = textMessageRecipients as? [AnyObject]
    messageComposeVC.body = "Testing 123!"
    }
Run Code Online (Sandbox Code Playgroud)

编译器抛出错误

bound value in a conditional binding must be of Optional type
Run Code Online (Sandbox Code Playgroud)

如何将我的转换stringAnyObject并将其分配给消息视图控制器?

uta*_*hak 2

从您的示例和您看到的错误来看,您正在尝试解开一个不可选的值。if let当有值时就不需要使用。if let您可以使用如下方式强制强制转换:

if let myValue:AnyObject = numb.selectedNumber as? AnyObject
Run Code Online (Sandbox Code Playgroud)

这将产生一条警告,指出强制转换 a StringtoAnyObject将始终成功,同样,您不需要if let,您的强制转换将始终成功。

您的最终示例应类似于:

messageComposeVC.recipients = [numb.selectedNumber] as [AnyObject]
messageComposeVC.body = "Testing 123!"
Run Code Online (Sandbox Code Playgroud)