1

Objective-C を使ってからしばらく経ちました (そして、Swift は初めてです) ので、ご容赦ください。ただし、まったく意味をなさない、または Apple のドキュメントと完全に矛盾する「nullability アノテーション」がいくつかあることに気付きました。NSURLたとえば、次のクラス メソッドを使用します。

+ (instancetype)URLByResolvingBookmarkData:(NSData *)bookmarkData 
                                   options:(NSURLBookmarkResolutionOptions)options 
                             relativeToURL:(NSURL *)relativeURL 
                       bookmarkDataIsStale:(BOOL *)isStale
                                     error:(NSError * _Nullable *)error;

パラメータに注釈が追加されていることに気付くでしょう。errorしたがって、このメソッドには注釈が付けられていると想定する必要がありますよね?

その場合、relativeToURLパラメーターには null 可能性アノテーションが追加されていないため、 null 可能ではないと想定することもできます。

私は実際、Objective-C の新しい nullability アノテーションを理解していますか?

もしそうなら、なぜrelativeURL具体的な状態のドキュメントを行うのですか(太字の書式は私のものです):

アプリ スコープのブックマークを解決するには、nilの値を使用します。

新しい注釈の背後にある理由は理解できますが、既存のクラスとのヒットやミスが多すぎて、その良さがよくわかりません。何か不足していますか?

4

1 に答える 1

1

_Nonnull と表示されている場合、nil にはなりません。_Nullable と表示されている場合は、可能です。そうでなければ、少なくともデフォルトでは、どちらの方法でも仮定を立てることはできません.IIRC.

于 2015-12-04T08:51:15.763 に答える