我正在尝试熟悉do catch
Swift 2和iOS 9 的新声明
我的问题是,当NSURLSession发生错误时,data参数返回nil,而错误返回某些信息。在iOS
8中,这是预期的功能,我们只使用了if语句来查找Data是否为nil。
但是do
catch
,有了try
,我想到了一个new
关键字,它旨在查看是否可以正常工作,如果不能正常工作,则默认为所编写的任何代码catch
但是,由于数据为零,所以我遇到了意外崩溃。这是预期的功能吗,为什么catch
在我的try
方法失败时不被调用?
我正在使用NSURLSession从API中提取数据。
我创建一个dataTaskWith请求,如下所示:
let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
print(request)
print(response)
print(error)
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
因为数据而在此处崩溃!为零..因为存在NSURLSession错误
print(jsonResult)
} catch {
print(error)
}
})
task.resume()
这是因为catch
仅捕获函数“抛出”的内容。
NSJSONSerialization
抛出,但是强制展开一个空的Optional却没有,它总是崩溃。
使用if let
或新guard
功能安全地解开您的价值观。
do {
if let myData = data, let jsonResult = try NSJSONSerialization.JSONObjectWithData(myData, options: []) as? NSDictionary {
print(jsonResult)
}
} catch {
print(error)
}
问题内容: 我正在为已经存在很长时间的应用程序编写单元测试。我需要测试的一些方法是这样构建的: 如果要测试这些方法,则必须在单元测试中编写如下代码: 这样做是一种好习惯吗?还是有其他方法可以测试这些方法? 我在Internet上进行了一些研究,发现了一些带有和的注释解决方案,但这是行不通的(Eclipse不断在测试中显示错误行)。我不知道这些是否是好的解决方案,因为对于整个单元测试而言,我还是一个
问题内容: 我听到这样的观点,您应该完全避免使用try / catch,因为它占用很多资源。那么诺言错误处理会更快吗?还是没关系? UPD :我知道try / catch在内部的异步代码中不起作用。我只是在想是否由于性能问题而有任何避免使用try / catch的理由?以上两种方法之间有什么区别吗? UPD2 :试着跑我的马:) https://jsperf.com/try-catch-vs- p
Android应用程序初学者有一些问题,应用程序无法打开。今晚才开始用它工作。eclipse中的代码上没有显示错误。就在我试图从模拟器运行它时,它意外地关闭了。 主要来源:包装com.example.solidshellsecurity; XML: 错误日志:
我很难在Android Studio中运行仪器化测试。 当我尝试运行多个测试用例时,会出现“测试框架意外退出”: ...所有的测试都继续在模拟器中运行,但Android Studio没有得到结果。 我的测试依赖项: 我发现很少有人提到“测试框架意外退出”和“此进程的传出事务必须是flag_oneway”来禁用Android Studio中的即时运行,但自从3.5没有即时运行以来,它被重命名以应用代
问题内容: 我试图弄乱新的RecyclerView,每当我尝试运行它时,我的应用程序立即崩溃。它为我提供了NullPointerException,用于尝试从中访问方法。我查看了其他帖子,发现大多数人都没有,但是我尝试了一下,但完全没有帮助。目前还不确定要怎么做,我们将不胜感激。这里是错误日志:(我会发布图片,但我还没有10位代表) 问题答案: 当没有提供时,通常会发生此问题。您可以这样做:
当我运行应用程序时,它工作得很好,但是当我想调试一个变量值时,应用程序就崩溃了。下面是完整的调试日志。我不知道是什么错误来纠正它。你们能帮帮我吗?我读到了一些关于并且我禁用和启用了ADB集成,但没有帮助我。我试图清洁,重建和运行的项目再次和没有帮助我。每次我尝试开始调试时,应用程序都会崩溃。 提前谢谢!!