これが私の状況であり、おそらくこれを行う簡単な方法があります:
通知を使用するものをいくつかテストしていますが、期待をクラスレベルのオプション変数として定義する必要がなかったので、通知ハンドラーがアクセスできるようにそれらを関数のローカル変数にできるかどうか疑問に思っていました彼ら。
私の試みは、トップレベルのテスト関数内のネストされた関数として通知ハンドラー関数を作成することでした-しかし、通知ハンドラーに何を呼び出すように指示する必要があるかわからないため、セレクターの命名の問題に遭遇しました
class FilePlayerTests: XCTestCase {
func testFilePlayback() {
let f1URL : NSURL = NSBundle(forClass: FilePlayerTests.self).URLForResource("test1", withExtension: "csv")!
let f2URL : NSURL = NSBundle(forClass: FilePlayerTests.self).URLForResource("test2", withExtension: "csv")!
let f3URL : NSURL = NSBundle(forClass: FilePlayerTests.self).URLForResource("test3", withExtension: "csv")!
let f1 = dm.createFilePlayerFromURL(f1URL)
let f2 = dm.createFilePlayerFromURL(f2URL)
let f3 = dm.createFilePlayerFromURL(f3URL)
let e1 = expectationWithDescription("xplane1")
let e2 = expectationWithDescription("xplane2")
let e3 = expectationWithDescription("xplane3")
f1?.startPlayback()
//Define LocationMessage Observer
nc.addObserver(self, selector: "newHandler:",
name: dmNotification.LocationData.rawValue,
object: nil)
///Prints out a new Location Message
func newHandler(notif: NSNotification) {
let msg = notif.asLocationMessage!
println(msg)
e1.fulfill()
}
}
}
セレクターが見つからないため、コードがクラッシュしています。
1) これは有効ですか?
2) セレクターを見つけられるように、セレクターに正しく名前を付けるにはどうすればよいですか?