我有一个静态字符串变量
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
如何将string
转换为AnyObject
并将其分配给消息视图控制器?
答案 0 :(得分:1)
您需要将selectedNumber
设为可选,如下所示:
struct numb {
static var selectedNumber: String?
}
答案 1 :(得分:1)
从您的示例和您看到的错误中,您正在尝试解包非可选值。有值时,您不需要使用if let
。您可以使用if let
强制执行强制转换:
if let myValue:AnyObject = numb.selectedNumber as? AnyObject
这会产生一个警告,说String
AnyObject
总是会成功,再次你不需要if let
,你的演员阵容将永远成功。
你的最后一个例子应该是这样的:
messageComposeVC.recipients = [numb.selectedNumber] as [AnyObject]
messageComposeVC.body = "Testing 123!"
答案 2 :(得分:1)
在Swift 2.1中测试,Xcode 7.工作!
var myItems : String?
myItems = ItemsTextfield.text
myItems as! AnyObject