swift - 在 Swift 闭包中隐式使用 self
问题描述
我有以下测试类:
import XCTest
@testable import DogYears
class DogYearsTests: XCTestCase {
let calc = Calculator()
var resData: Data? = nil
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testResult(){
let res1 = calc.evaluate(op: "+", arg1: 2.0, arg2: 9.0)
let res2 = calc.result
XCTAssert(res1 == res2)
}
func testInfoLoading(){
let url = "https://raw.githubusercontent.com/FahimF/Test/master/DogYears-Info.rtf"
HTTPClient.shared.get(url: url) { (data, error) in
XCTAssertNil(error)
XCTAssertNotNil(data, "empty data")
self.resData = data
let predicate = NSPredicate(format: "resData != nil")
let exp = expectation(for: predicate, evaluatedWith: nil, handler: nil)
}
}
}
在线的:
let exp = expectation(for: predicate, evaluatedWith: nil, handler: nil)
编译器用红色错误警告我:
在闭包中隐式使用“self”;使用“自我”。使捕获语义明确
但我不使用任何自变量。为什么不编译?
解决方案
由于 DogYearsTests 继承自 XCTestCase,expectation 是你的类的一个方法,所以你应该用 self 调用它。
推荐阅读
- php - 使用 swiftmailer 发送电子邮件时出现解析错误
- java - 如何避免在后台运行时启动应用程序时显示启动画面?
- python - 如何使用 For 循环语句从 4 个数据帧创建一个相似列的数据帧
- javascript - 向前和向后遍历树状结构
- json - 在 Angular 中解析巨大的 XML 文件的超时或策略问题
- python - 在 matplotlib 上绘制一个 numpy 数组
- javascript - Chrome 扩展程序不会在按钮单击时运行 .JS
- concatenation - 在 Qlik Sense 中加载多个表格时出错
- java - Spring boot 启动Exception ServerPropertiesAutoConfiguration.class] 无法打开,因为它不存在
- spring-boot - Spring批处理,如何删除根标签