将字符串转换为swift中的任意对象

将字符串转换为swift中的任意对象,swift,casting,Swift,Casting,我有一个静态字符串变量 struct numb { static var selectedNumber: String = String() } 我正在尝试打开(将其转换为AnyObject)该值并将其分配给messageComposeViewController if let textMessageRecipients :AnyObject = numb.selectedNumber { messageComposeVC.recipients = tex

我有一个静态字符串变量

struct numb {

    static var selectedNumber: String = String()

}
我正在尝试打开(将其转换为
AnyObject
)该值并将其分配给
messageComposeViewController

 if let textMessageRecipients :AnyObject  =  numb.selectedNumber 
    {
     messageComposeVC.recipients = textMessageRecipients as? [AnyObject]
    messageComposeVC.body = "Testing 123!"
    }
编译器正在抛出一个错误

bound value in a conditional binding must be of Optional type

如何将我的
字符串
转换为
任何对象
,并将其分配给消息视图控制器?

您需要将您的
selectedNumber
设置为可选,如下所示:

struct numb {

    static var selectedNumber: String?

}
if let myValue:AnyObject = numb.selectedNumber as? AnyObject

从您的示例和看到的错误来看,您正在尝试展开一个非可选值。如果存在值时让,则不需要使用
。如果让
这样做,您可以使用
强制强制转换:

struct numb {

    static var selectedNumber: String?

}
if let myValue:AnyObject = numb.selectedNumber as? AnyObject
这将产生一条警告,说明将
字符串
强制转换到
任何对象
将始终成功,同样,您不需要
如果让
,则强制转换将始终成功

最后一个示例应该如下所示:

messageComposeVC.recipients = [numb.selectedNumber] as [AnyObject]
messageComposeVC.body = "Testing 123!"

在Swift 2.1,Xcode 7中测试。工作

var myItems : String?

myItems = ItemsTextfield.text

myItems as! AnyObject

哦,我完全错过了,谢谢!。但是现在由于某种奇怪的原因,messageComposeVC.recipients没有值,即使我在执行println时,textMessageRecipients中有一个字符串值。有线索吗?是的,因为您的
textMessageRecipients
AnyObject
而不是
[AnyObject]
,并且您将
textMessageRecipients
指定为<代码>[AnyObject]
因此它将返回nil。