gpt4 book ai didi

objective-c - 数组速记表达式和方法调用的 XCTAssert 语法错误

转载 作者:太空狗 更新时间:2023-10-30 03:42:40 27 4
gpt4 key购买 nike

所以我正在使用 XCTest 进行单元测试,但遇到了一个小问题。

当我编写一个包含速记数组声明和内部方法调用的 XCTAssert 语句时,Xcode 中会出现语法错误:

XCTAssert([self hasStrings:@[ @"foo", @"bar" ]]);

在Xcode编译错误中:

Expected identifier or '('

但是,如果我在表达式周围添加更多括号,它将起作用:

XCTAssert(([self hasStrings:@[ @"foo", @"bar" ]]));

这是否与我的某些语法不允许传递到宏有关? (假设 XCTAssert 是一个宏)

最佳答案

XCTAssert 是一个带有可变参数列表的宏:

#define XCTAssert(expression, format...) \
_XCTPrimitiveAssertTrue(expression, ## format)

在你的第一种形式中,预处理器解释

[self hasStrings:@[ @"foo", @"bar" ]]

作为两个宏参数,用逗号分隔。

关于objective-c - 数组速记表达式和方法调用的 XCTAssert 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20691305/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com