1
ためAnyHashableを与える:スウィフトでのObjective-Cの軽量ジェネリック型を使用すると、私は次の実装持つ型パラメータ
MySet.h:
@interface MySet<T> : NSObject
@property (strong, atomic, readonly) NSSet<NSDate *> * keys;
@property (strong, atomic, readonly) NSSet<T> * keys2;
@end
MySet.m:
@implementation MySet
@synthesize keys, keys2;
@end
を
スウィフトコードから使用しようとすると
MySet<NSString>().keys
代わりSet<NSString>
を私に与えてくれSet<AnyHashable>
Set<Date>
と
MySet<NSString>().keys2
を与えます。
なぜ、正しい型の戻り値にするのですか?
UPDATE
はbugを報告しました。
NSObjectサブクラスに制限したくない場合はどうすればいいですか?私は例としてNSStringを使用しました。 – mixel
@mixel:ほとんどのObjective-CクラスはNSObjectのサブクラスです(多分あなたが使っているもの)。制限は、NSProxy(Hashableに準拠していない)のようなものだけを除外します。 –
私はSwiftコードでこのObj-Cクラスを、NSObjectのサブクラスではないカスタムクラスで使用したいと考えています。 – mixel