使用带有NSString的XCTAssertEqual作为错误消息参数

Cod*_*ior 4 xcode objective-c xcode5

这是我如何使用XCTAssertEqual的一个例子

XCTAssertEqual(valueA, valueB, @"message");
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试以下

NSString *message = @"message";
XCTAssertEqual(valueA, valueB, message);
Run Code Online (Sandbox Code Playgroud)

我收到编译错误,即

Expected ')'
Run Code Online (Sandbox Code Playgroud)

看起来我只是简单地传递一个NSString.当我深入研究我发现的定义时

#define XCTAssertEqual(a1, a2, format...) _XCTPrimitiveAssertEqual(a1, a2, ## format)
Run Code Online (Sandbox Code Playgroud)

我无法做出正面或反面.为什么我无法NSString*format...参数作为参数传递给XCTAssertEquals,当它接受NSString文字时@"message"

注意:这似乎是所有断言的情况.

Dan*_*Dan 9

试试这个:

XCTAssertEqual(valueA, valueB, @"%@", message);
Run Code Online (Sandbox Code Playgroud)