我想使用Objective-C可空性功能。但是我应该使用nullable / nonnull实现文件或仅使用接口进行注释吗?
答案 0 :(得分:9)
声明可为空性的唯一理由是从编译器单元获得警告反馈(参见https://developer.apple.com/swift/blog/?id=25)。
作为最佳实践,您应始终在声明中设置nullable和nonnull(或_Nullable和_Nonnull)。
所以你应该为你的所有接口做这个,但是根据你的编码标准,你可以实现类范围(或类别范围)方法而不声明它们,在这种情况下,声明是实现,你应该声明他们的可空性值。
您总是可以声明在接口中声明的实现的可空性,但在我看来,它会降低可维护性。