Objective c @"E;%@在目标C中?
我在跟踪一个tut,发现一行代码,如按下了“%@按钮”。。我很确定相关部分是%@,但第一个@是转义序列还是什么Objective c @"E;%@在目标C中?,objective-c,Objective C,我在跟踪一个tut,发现一行代码,如按下了“%@按钮”。。我很确定相关部分是%@,但第一个@是转义序列还是什么 无论如何,搜索符号在任何搜索引擎中都不太合适,所以我想我应该问问。我认为%@就像C#?中的{0},我发现这个页面可能有帮助- 您似乎走对了方向。@“some string”表示这是一个NSString文本 @“CupOverflowException”中显示的字符串是一个常量 NSString对象。使用@符号 通常在Objective-C中表示 语言的延伸。C字串 就像C和C++一样,
无论如何,搜索符号在任何搜索引擎中都不太合适,所以我想我应该问问。我认为%@就像C#?中的{0},我发现这个页面可能有帮助- 您似乎走对了方向。@“some string”表示这是一个NSString文本 @“CupOverflowException”中显示的字符串是一个常量 NSString对象。使用@符号 通常在Objective-C中表示 语言的延伸。C字串 就像C和C++一样,“字符串” 常量”,并且是char类型*
%@
是一个格式说明符。函数如<代码> NSLogs以及诸如<代码> + StrugFieldFrase:< /C> >将通过提供的Objto-C或Core Foundation对象参数的描述来代替<代码> %@ <代码> >
例如:
NSString *myName = @"dreamlax";
NSLog (@"My name is: %@", myName);
这将记录输出“我的名字是:dreamlax”
。有关格式说明符的详细信息,请参阅
字符串开头的初始
@
符号告诉编译器创建NSString
对象的静态实例。如果没有初始的@
符号,编译器将创建一个更简单的C样式字符串。由于C样式字符串不是Objective-C对象,因此不能将它们添加到NSArray
或NSDictionary
对象等。我对该语言还是相当陌生的,但看起来@指定要传递/创建的变量是NSObject或编译器指令
如上所述,如果您这样使用它:
@“someText”
您正在实例化一个NSString对象,并将该对象的文本设置为someText。如果您看到一个好的ol'C样式格式说明符,例如:
…“这是一些文本,这是一个浮点值:%f”,myFloat)
您正在创建一些文本,并告诉编译器将myFloat的浮点字符串表示形式放入字符串中。%@是一个格式说明符,就像%f、%d、%c、%s和您使用的任何其他格式说明符一样。但是,如果您使用%@如下所示:
。。。“这是一些文本,这是一个对象:%@”,myObject]
您所做的是(我相信)告诉编译器myObject是一个对象,并且您希望它在您创建的字符串中包含描述方法的输出(即[myObject description])。由于我没有注册此帐户,因此我无法对此帐户进行投票,但谢谢,这看起来非常有用!如果我想要有多个格式说明符呢?我是用两个%@吗?@DMan:是的,但一定要提供两个参数(按你希望的顺序)。嘿,我觉得那是个顽皮的词或什么的。