NSString是Cocoa中用于处理字符串的类。它以双引号字符串的形式表示,其中@符号代表接下来的内容为所要显示的内容。在C语言中,字符串通常被当作字符数组处理,并在数组末尾添加一个零字节作为结束标志。

创建字符串的方法之一是使用stringWithFormat。通过格式字符串和参数,该方法可以生成一个新的NSString实例。例如:

```objc

NSString *height;

height = [NSString stringWithFormat:@"your height is %d feet", 5];

```

这将得到一个字符串"your height is 5 feet"。

另一个常用的NSString方法是length,它返回字符串中的字符个数。使用示例如下:

```objc

unsigned int len = [height length];

```

NSString的length方法能够准确处理各种国际字符串,如俄文、中文、日文字符串等,以及使用Unicode国际字符标准的字符串。这在C语言中很难实现,因为一个字符可能占用多个字节的空间,导致像strlen()这样的函数返回错误的数值。

若要比较两个字符串是否相等,可以使用isEqualToString方法。这个方法接受一个参数,即要比较的字符串,并返回一个BOOL值,表示两个字符串的内容是否相同。声明如下:

```objc

- (BOOL)isEqualToString:(NSString *)otherString;

```

Compare是Objective-C中的一个方法,用于比较两个字符串。它将接收对象和传递来的字符串进行比较,返回一个NSComparisonResult(即枚举型数据)来显示比较结果。需要注意的是,如果使用compare来判断两个字符串是否相等,应该使用isEqualToString而不是仅仅比较字符串的指针值。

compare还有一种区分大小写的方式,它有重载方法,多了一个option参数来提供更多选择和操作。options参数是一个位掩码,你可以使用位或运算符来添加选项标记。常用的选项包括:不区分大小写的字符、进行完全比较区分大小写、按字符个数比较。

如果需要判断一个文件名中是否包含特定的字符串,例如“.avi”,可以使用hasPrefix或hasSuffix方法,这两个方法可以检查字符串是否以另一个字符串开头或结尾。如果需要判断字符串中是否包含另一个字符串,则可以使用rangeOfString方法,该方法返回一个NSRange结构体,其中range.start表示出现的第几个位置,range.length表示要比较的字符串的长度,如果没有找到则range.start等于NSNotFound。

可变的字符串可以通过NSString的alloc、init、retain、release方法来创建和释放。在使用这些方法时,需要注意内存管理问题,避免出现内存泄漏的情况。

NSString是一个不可变的字符串对象,创建后就无法改变它,只能对它进行各种不影响其内容的操作,比如删除字符或者添加字符来改变它。而NSMutableString是一个可变的字符串对象,可以在创建后对其进行修改。如果定义的字符串后面会发生改变,则使用这个子类 。

通常将deleteCharactersInRange:和rangeOfString:连在一起使用,NSMutableString可以使用NSString的全部功能,包括rangeOfString:、字符串比较和其他任何功能。