2016-07-11 11 views
1

を特化することはできません私のNSManagedObject:それは仕事をdoesntなぜは、これは非ジェネリック型の「SET」

@objc(Order) 
class Order: NSManagedObject { 

    @NSManaged var orderItems: Set<OrderItem> //error: Cannot specialize non-generic type 'Set' 
} 

誰でも知っていますか?

OrderItemファイルが作成され、しかし、次の宣言のために動作します:

@NSManaged var orderItem: OrderItem 
+0

Xcode 7.3.1のプレイグラウンドでうまく動作しますか?Swiftのバージョンは使用していますか? –

+0

同じXcode、Swiftのバージョンをチェックする方法は? –

+0

xcrun swift -version –

答えて

2

ただ、誰かが議論がコメントで続いたことから、この厄介なバグのために将来的にこの質問に来る必要がある場合の参考のため。

はい、SwiftのデフォルトのSetタイプは一般的ですが、この場合カスタム以外のSetクラスは言語の標準ライブラリで定義されたクラスをシャドーイングしていました。

名前の衝突を避けるため、常にクラスに異なる名前を選択することをお勧めします。ただし、必要に応じて、クラスの完全修飾名を使用して、必要なクラスを参照することができます。

標準言語クラスはSwift.名前空間で利用できますが、他のクラスでは、モジュール名にドットとクラス名(例:Foundation.NSString)を使用できます。

関連する問題