Swift中的以下代码引发NSInvalidArgumentException异常:
task = NSTask()
task.launchPath = "/SomeWrongPath"
task.launch()
Run Code Online (Sandbox Code Playgroud)
我该如何捕捉异常?据我所知,Swift中的try/catch是针对Swift中抛出的错误,而不是针对像NSTask这样的对象引发的NSExceptions(我猜这是用ObjC编写的).我是Swift的新手,所以可能是我错过了一些明显的东西......
编辑:这是一个关于bug的雷达(特别是对于NSTask):openradar.appspot.com/22837476
我正在尝试NSFetchedResultsController在Swift 4中为类编写一个简单的扩展.
这是我的第一次尝试 - 在Swift 3中有效:
public extension NSFetchedResultsController
{
public func sectionCount() -> Int
{
if self.sections == nil
{
return 0
}
return self.sections!.count
}
}
Run Code Online (Sandbox Code Playgroud)
但是我使用Swift 4在Xcode 9 beta 2中得到了这个编译错误:
泛型Objective-C类的扩展无法在运行时访问类的泛型参数
我尝试过其他变化无济于事.注意我可以创建一个绑定到特定类型NSManagedObject匹配的扩展名resultType; 但是这样做的缺点是我需要为每个使用的托管对象类型创建一个扩展NSFetchedResultsController.
最新的Swift 4文档似乎不能很好地解释这一点.
swift ×2
cocoa-touch ×1
exception ×1
foundation ×1
generics ×1
ios ×1
nsexception ×1
swift4 ×1