在使用NSRunningApplication数组(包含所有正在运行的应用程序)时,我发现我的应用程序崩溃是因为直接访问bundleIdentifier属性而没有先检查nil。如果属性被声明为正确的可选项,那么这可以完全避免在没有阅读文档的情况下完全避免的错误,因为类型系统不允许我在不首先展开它的情况下使用它。
此属性在swift标题中记录并声明如下:
/* Indicates the CFBundleIdentifier of the application,
or nil if the application does not have an Info.plist. */
var bundleIdentifier: String! { get }
是否有任何理由不将此属性声明为正确的可选项?
答案 0 :(得分:0)
正如Martin R所说,将返回类型定义为隐式展开的可选项是Apple的设计决策。想象一下,每次调用Cocoa API都会得到一个可选项。你只需要像使用Objective-C一样小心,只要没有Swift的更新框架。