残念ながら、Objective C で定義されたクラス (Class.h、Class.m) と、Swift で同じ名前の別のクラス (Class.swift) があります。
クラスをインポートするブリッジヘッダーがあります
#import "Class.h"
ここで、Objective C からクラスを返すメソッドを作成したいと考えています。Swift の代わりに Objective C クラスを使用することを指定する方法はありますか、またはクラスの名前を変更する必要がありますか?
残念ながら、Objective C で定義されたクラス (Class.h、Class.m) と、Swift で同じ名前の別のクラス (Class.swift) があります。
クラスをインポートするブリッジヘッダーがあります
#import "Class.h"
ここで、Objective C からクラスを返すメソッドを作成したいと考えています。Swift の代わりに Objective C クラスを使用することを指定する方法はありますか、またはクラスの名前を変更する必要がありますか?
クラスの名前を変更します。タグ付けされていない Swift クラスがどのよう@objc
に扱われるかについては 100% ではありませんが、異なる言語で記述されていたとしても、同じ名前の 2 つのクラスを使用しても良い結果は得られません。Swift バージョンが Objective-C 側に表示される場合、明確な問題があり、インスタンス化するときにClass
どのバージョンが取得されるか確信が持てません。理論的には、プログラムを実行するたびに変更される可能性がありますが、実際には、クラスローダーは決定論的すぎてそれが発生しない可能性があります。