XCTest を使用してアプリケーションをテストしようとすると、次の操作を行うとビルド エラーが発生します。
#import <XCTest/XCTest.h>
@interface MyTests : XCTestCase
@end
@implementation MyTests
- (void)testExample
{
NSString *str = @"foo";
XCTAssertTrue(YES, str); // Parse issue: Expected ')'
}
@end
しかし、これを行うとビルドエラーは発生しません:
#import <XCTest/XCTest.h>
@interface MyTests : XCTestCase
@end
@implementation MyTests
- (void)testExample
{
XCTAssertTrue(YES, @"foo"); // this is just fine...
}
@end
私が得るビルドエラーは次のとおりです。
Parse issue: Expected ')'
「str」の「s」の下に矢印を入れます。
変更することでこれを修正できることを発見しました
XCTAssertTrue(YES, str)
に
XCTAssertTrue(YES, @"%@", str)
しかし、なぜそれが違いを生むのか理解できません。誰かがなぜそうなのか説明してもらえますか?