1

私のObjective Cコードには、次のプロパティがあります。 @property (nonatomic, readonly) NSString * _Nullable myNullableString;

Swift コードで使用したいのですが、この場合、Xcode/Sourcekit はmyNullableStringtype ではなく type を持っているString?と考えString!ます。

この事実により、プロパティのガード付きアンラップは正しくありませんが、強制的な使用も正しくなく、ビルドしたい場合は Xcode / SourceKit のクラッシュまたは segfault につながります。

それを解決する方法はありますか?

4

1 に答える 1

-1

Nullと同じではありませんnil。初期化されていない文字列ですNullが、それでも文字列である文字列は、obj-c には存在しない「オプション」と呼ばれるものがあります。

String?つまり、関数は完全な文字列を返すか、nil未定義の (初期化されていない) 文字列を返します。

実際、swift で最も近いのはString!" であり、これは必須の文字列です (nil を返すことはできません)。

編集:コメントでマーティンが指摘したように、上記のステートメントの最初の部分は正しくありません

于 2016-02-10T08:44:14.343 に答える