目标C中的@"%@?

doo*_*doo 3 objective-c

我跟着一个啧啧,发现了一行代码@"%@ button pressed.".我很确定相关部分是%@,但是第一个@转义序列还是什么?

无论如何,搜索符号在任何搜索引擎中都不顺利,所以我想我会问.我认为%@与C#中的{0}类似?

dre*_*lax 9

%@是格式说明符.诸如的函数NSLog和方法+stringWithFormat:将替换%@为所提供的Objective-C或Core Foundation对象参数的描述.

例如:

NSString *myName = @"dreamlax";

NSLog (@"My name is: %@", myName);
Run Code Online (Sandbox Code Playgroud)

这将记录输出"My name is: dreamlax".有关格式说明符的更多信息,请参见此处

@字符串开头的初始符号告诉编译器创建NSString对象的静态实例.如果没有该初始@符号,编译器将创建一个更简单的C风格字符串.由于C风格的字符串不是Objective-C的对象,则不能将它们添加到NSArrayNSDictionary对象等.