相关疑难解决方法(0)

在Swift中捕获NSException

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

cocoa-touch exception foundation nsexception swift

65
推荐指数
3
解决办法
2万
查看次数

如何在Swift 4中编写NSFetchedResultsController的扩展

我正在尝试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文档似乎不能很好地解释这一点.

generics ios swift swift4

8
推荐指数
1
解决办法
896
查看次数