2017-09-14 2 views
0

Swift 2.xからswift 3への移行時に、「 'String!」というエラーが発生しました。 「文字列」に変換できません。スウィフト2.xを3速にすると、Xcodeにエラーが表示される: 'String!'

self.cartItemController.textCombinationsToDisplayInCart[pCombinationsPickerView.combinationName as String]=combinationValue["Name"] 

これを修正する方法はありますか?

func setTextCombinationsToDisplayInCart(_ pCombinationsPickerView:CombinationsPickerView,pRow:Int) 
{ 
    var combinationValue:[NSString : NSObject]=pCombinationsPickerView.combinationValues[pRow] as! [NSString : NSObject] 
    if(pCombinationsPickerView.combinationID != 1)//Personnalisation 
    { 
     self.cartItemController.textCombinationsToDisplayInCart[pCombinationsPickerView.combinationName as String]=combinationValue["Name"] 
    } 
} 

答えて

1

問題がmyVar as StringリターンString?の代わりStringということです。

myVar as! Stringを使用して、この変換が常に機能することを確認してください。

ただし、強制的な型キャストがnilをオプションで返すことがあると思われる場合は、guardステートメントを試すことができます。

+0

私は[pCombinationsPickerView.combinationName as String]を[pCombinationsPickerView.combinationName as!]に置き換えます。文字列]しかし、今それによって警告: "強制的なキャストから '文字列!' 'String'は常に成功しました。あなたは 'as'を使うのが賢明でしたか?そしてXcodeは 'as'で置き換えることを提案します。 'として' ... – Zipette

+0

問題はおそらく右側にあります。 'combinationValue ["Name"] 'はNSStringです。あなたはそれに' as'変換を使用する必要があります。 –

+0

ありがとう、私はself.cartItemController.textCombinationsToDisplayInCart [pCombinationsPickerView.combinationName as String] = combValue ["Name"] by self.cartItemController.textCombinationsToDisplayInCart [pCombinationsPickerView.combinationName as NSString] = combinationValue ["Name"]このエラーは次のように解決されました。 – Zipette

関連する問題