私はObj-C-Swiftアプリケーションが混在しています。
マイカスタムオブジェクト - C MapViewController
はItem
がスイフトで書かれたカスタムクラスで次のヘッダーファイルを持っています。Swift: "タイプ 'Item!'の値を割り当てることができません。 「Item!」と入力します。
@class Item;
@interface MapViewController : UIViewController
@property (nonatomic, strong) Item *item;
@end
MapViewController
にセグエが
self.performSegueWithIdentifier(kMapSegueId, sender: item)
を用い
Item
オブジェクト
item
で開始されます
item
はsender
として送信されます。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == kMapSegueId {
let mapViewController = segue.destinationViewController as! MapViewController
mapViewController.item = sender as! Item! // This gives the error
}
}
しかし、MapViewController
の財産item
への代入は、コンパイラエラー
は、型の値に割り当てることができません提供します「アイテムを!」 「Item!」と入力します。
どうすればこの奇妙なエラーを回避できますか?
'as!'は既に 'Item'の後のオプションの感嘆符をアンラップしますが、意味がありません。 – vadian
@vadian:私は以前これを試しましたが、Itemの後ろに感嘆符が付きませんでした。 "タイプ 'Item'の値を代入できません" –
'Item'は' @objc'属性を持っていますか? –