与NSDate类似,NSString也是Objective-C类,NSString实例可以保存字符串。

创建NSString实例(Creating instances of NSString)

可以像这样创建一个NSString实例:

NSString*lament=@"why me!?";

  从以上这行代码中可以看,我们并没有明确地发送消息给NSString类,让它创建一个实例。@"..."是Objective-C语言中的一个缩写,代表根据给定的字符串创建一个NSString对象。我们称这种缩写为字面量语法(literal syntax)。创建的实例称为NSString的字面量实例,或者更通俗地称为NSString。

  NSString实例可以保存任意Unicode字符。如果需要插入非ASCII字符,则可以使用\u,后面加上该字符的十六进制Unicode编码。例如,卡牌中的红心符号的十六进制Unicode编码是0x2661:

NSString*slogan=@"I \u2661 OC!";

  由于NSString对象可以保存Unicode字符,所以可以处理不同语言的字符串,创建多语言的应用就更加方便。

  我们经常需要创建动态字符串。也就是说,需要创建不清楚内容的字符串,该字符串的内容需要等到程序运行的时候才能知道。这时可以使用stringWithFormat:类方法来创建动态字符串:

NSString*dateString=[NSString stringWithFormat:@"The date is %@",now];

  stringWithFormat:方法后面跟着一个格式字符串作为参数,这个格式字符串带有一个格式说明符和一个变量,变量的值会被用来替换格式字符串。其原理与传入NSLog函数的格式字符串一样。