我想打电话给某些方法throw.同时我不关心可能抛出的异常,我只想调用方法.但是,如果我尝试做这样的事情:
try? managedObjectContext.save()
Run Code Online (Sandbox Code Playgroud)
我收到警告"尝试的结果?未使用".在这种情况下我该怎么办?沉默警告?怎么样?
做这样的事情:
let error: NSError = try? managedObjectContext.save()
Run Code Online (Sandbox Code Playgroud)
?表达式变为两倍大,我得到未使用的常量.
我有一个广泛使用IBDesignable视图的.xib文件.随着视图的增长,我注意到CPU负载不变.现在,我的视图非常大,当我在界面构建器中打开它时,ActivityMonitor显示:
.即使我离开.xib文件并转到代码,它仍会继续.停止它的唯一解决方案是关闭,然后打开Xcode并且在真正需要之前不要打开.xib文件.我粗略的假设是Xcode继续在后台编译我的项目/视图以维持IBDesignable实际状态的视图.
我该怎么做才能防止浪费CPU?
如果它有任何意义 - 我的mac配置:MacBook Pro(Retina,15英寸,2015年中),2.5 GHz Intel Core i7,16 GB 1600 MHz DDR3
在阅读一些Android示例时,我通常会看到类似的评论
// BEGIN_INCLUDE (something)
// END_INCLUDE (something)
Run Code Online (Sandbox Code Playgroud)
但是,我目前的IDE - Android Studio 1.1 - 无法识别它们(或者我做错了什么).我想,它们可以作为某种代码区域标记(如
//<editor-fold desc="Region name">
// some code
//</editor-fold>
Run Code Online (Sandbox Code Playgroud)
在AndroidStudio/IntellijIDEA中),但这种语法很像c ++预处理程序指令.所以问题是:我是否应该知道这些评论的重要内容(除了明显的评论功能),它可以以任何方式改进我的代码?
在我的单元测试中,我有以下代码来检查抛出的错误是否是预期类型.它由两个相同的语句完成,其中一个语句不能编译:
enum Error: ErrorType {
case SomeExpectedError
case SomeUnexpectedError
}
func functionThatThrows() throws {
throw Error.SomeExpectedError
}
// 1) this compiles fine
XCTAssertThrowsError(try functionThatThrows()) { (error) in
switch error {
case Error.SomeExpectedError: break
//everything is fine
case Error.SomeUnexpectedError: fallthrough
default:
XCTFail("Unexpected error thrown")
}
}
// 2) doesn't compiles at all
XCTAssertThrowsError(try functionThatThrows()) { (error) in
XCTAssertEqual(error as? Error, Error.SomeExpectedError)
}
Run Code Online (Sandbox Code Playgroud)
第一个语句编译并正常工作,但第二个语句告诉我有两个错误:
Errors thrown from here are not handled和Cannot convert value of type '(Error) -> Void' to expected …
ios ×2
swift ×2
android ×1
closures ×1
code-regions ×1
comments ×1
ibdesignable ×1
sample ×1
swift2 ×1
syntax-error ×1
xcode ×1