1

残念ながら、Objective C で定義されたクラス (Class.h、Class.m) と、Swift で同じ名前の別のクラス (Class.swift) があります。

クラスをインポートするブリッジヘッダーがあります

#import "Class.h"

ここで、Objective C からクラスを返すメソッドを作成したいと考えています。Swift の代わりに Objective C クラスを使用することを指定する方法はありますか、またはクラスの名前を変更する必要がありますか?

4

1 に答える 1

4

クラスの名前を変更します。タグ付けされていない Swift クラスがどのよう@objcに扱われるかについては 100% ではありませんが、異なる言語で記述されていたとしても、同じ名前の 2 つのクラスを使用しても良い結果は得られません。Swift バージョンが Objective-C 側に表示される場合、明確な問題があり、インスタンス化するときにClassどのバージョンが取得されるか確信が持てません。理論的には、プログラムを実行するたびに変更される可能性がありますが、実際には、クラスローダーは決定論的すぎてそれが発生しない可能性があります。

于 2015-11-19T11:38:40.080 に答える