nullability 関連の属性を読んで、Swift クライアントが使用できるように Objective-C コードを装飾します。これは間違いなく優れた機能であり、Swift の世界では API がよりクリーンになります。
しかし、私が疑問に思っているのは、純粋に Objective-C の世界で適切な使用法を強制するためにも使用できるかどうかです (つまり、Swift は全体像の一部ではありません)。
言い換えれば、ライブラリで公開されている関数の属性をマークして、nonnull
それを Objective-C から消費して渡すnil
と、コンパイラは警告しますか?
これらの注釈について説明しているAppleのこの記事によると、「互換性」セクションで、注釈はABIに影響を与えないと具体的に述べているためです。次の行は、フレームワークを使用する既存のコードがそれに取り組んでいるときにどのように新しい警告を受け取るかについて述べていますが、それが Swift コードまたは Objective-C コードを意味するかどうかはわかりません.Swift コンパイラについて具体的に言及しています.
繰り返しになりますが、これらの属性は純粋な ObjC から ObjC への呼び出しに影響しますか?