2015-06-19 90 views
2

我有一個靜態的字符串變量字符串轉換爲AnyObject在迅速

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 

如何將我的stringAnyObject並將其分配給消息視圖控制器?

回答

1

從你的例子,你看到的錯誤,你正試圖解開一個值是不可選的。有價值時,您不需要使用if let。您可以強制使用if let這樣的轉換:

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

這將產生一個警告說,鑄造StringAnyObject總是會成功,你又不需要if let,你的類型轉換總是會成功的。

你的最後一個例子應該是這個樣子:

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

你需要讓你的selectedNumber到可選的是這樣的:

struct numb { 

    static var selectedNumber: String? 

} 
+0

哦,我完全錯過了,謝謝!但現在出於一些奇怪的原因messageComposeVC.recipients沒有值,即使當我做一個println時,textMessageRecipients中有一個字符串值。任何線索? – Adeel

+0

是的,因爲你的'textMessageRecipients'是'AnyObject'而不是'[AnyObject]'而你正在將'textMessageRecipients'指定爲? '[AnyObject]',所以它將返回零。 –

1

在雨燕2.1測試時,Xcode 7.作品!

var myItems : String? 

myItems = ItemsTextfield.text 

myItems as! AnyObject 
相關問題