objective-c - 哪些方法会引发 NSInvalidArgumentException?

标签 objective-c cocoa exception null

我使用 Objective-c 和 cocoa api 一段时间了。但我不知道如果我将 nil 传递给参数,cocoa apis 中的哪些方法会引发 NSInvalidArgumentException 。

如何获取所有方法都会引发 NSInvalidArgumentException 以及哪个参数不能为 nil 的列表。官方文件有时不太明确,信息分散。

喜欢这个方法

NSData's -writeToURL:options:error:

我知道第一个参数不能为nil,否则会崩溃,但文档从未告诉我该信息。我如何知道在所有 Cocoa API 中,哪些方法不能接收 nil 参数并且会引发 NSInvalidArgumentException。

最佳答案

您可以查看 Swift 声明。如果它不是可选的,则不允许使用nil。如果它是常规可选 (?),则明确允许 nil。如果它是隐式解包的可选 (!),那么您不知道。例如,对于您提到的方法 -[NSData writeToURL:options:error:],Swift 声明为:

func writeToURL(_ aURL: NSURL,
          options mask: NSDataWritingOptions,
        error errorPtr: NSErrorPointer) -> Bool

类型 NSURL(而不是 NSURL?NSURL!)表示不允许使用 nil

关于objective-c - 哪些方法会引发 NSInvalidArgumentException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29415458/

相关文章:

iphone - 如何从 iPhone 中后台进程的名称访问(复制/修改)特定的 appfiledirectory?

ios - iOS 中解析 ISO8601 时间的问题

objective-c - 内存管理问题

c# - 在 C# 中为抛出的异常自动生成 XML 文档

java - 正确的辅助方法异常抛出

ios - 在 iOS 7 中自定义 moreNavigationController

macos - macOS Mojave 深色模式下的 NSPopover 背景颜色(包括三角形)

cocoa - NSMenu 的位置错误 popUpContextMenu :withEvent

Java 通用身份验证方法应抛出 Exception 或 RuntimeException

ios - 将图像保存在App Directory中,而不是去相册。 objective-c iOS