NSString是一个对象类型。NSString是NSObject(Cocoa Foundation的基础对象)的子类,所以具有NSObject的所有特性,NSString对象由unichar字符组成。unichar字符是符合Unicode标准的多字节字符。而且不别担心字符串的内部表示,因为NSString类已经自动处理了。
class="muted">NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT.@是Cocoa元素的前缀,很多地方我们会看到,比如接下来...
1 创建NSString对象
①、此方法不需要手动释放内存。
1 NSString*aString =@"This is String"; //需要在头部放一个@符号
②、此方法需要手动释放内存
1 NSString*aString =[[NSString alloc] initWithFormat:@"This is String"];
2 使用NSString对象
1 NSString *aString = @"Programming is fun"; 2 NSLog(@"%@", aString);
3 释放NSString
1 [aString release];
3 快速使用一个NSString
1 NSLog([NSString stringWithFormat:@"一个NS字符串"]);这种快速方法返回的是一个return为1,autorelease的对象,不需要操心它的内存管理
4 常用方法
1 NSString * str1 = @"This is string A"; 2 NSString * str2 = @"This is string B"; 3 NSString * res; 4 NSComparisonResult compareResult; 5 6 //计算字符串中的字符 7 NSLog(@"Length of str1: %lu", [str1 length]); 8 9 //将一个字符串复制到另一个字符串 10 res = [NSString stringWithString: str1]; 11 NSLog(@"Copy: %@", res); 12 13 //将一个字符串复制到另一个字符串的末尾 14 str2 = [str1 stringByAppendingString: str2]; 15 NSLog(@"Concatentation: %@", str2); 16 17 //验证两个字符串是否相等 18 if ([str1 isEqualToString: res] == YES) { 19 NSLog(@"str1 == res"); 20 }else{ 21 NSLog(@"str2 @= res"); 22 } 23 24 //验证一个字符串是否小于、等于或者大于另一个字符串 25 compareResult = [str1 compare: str2]; 26 if (compareResult < NSOrderedAscending) { 27 NSLog(@"str1 < str2"); 28 }else if (compareResult == NSOrderedSame){ 29 NSLog(@"str1 = str2"); 30 }else{ 31 NSLog(@"str1 > str2"); 32 } 33 34 //将字符串转换为大写 35 res = [str1 uppercaseString]; 36 NSLog(@"UppercaseString conversion: %s", [res UTF8String]); 37 38 //将字符串转换为小写 39 res = [str1 lowercaseString]; 40 NSLog(@"LowercaseString conversion: %s", res); 41 42 43 NSLog(@"Original string: %@", str1);
NSLog(@"%@", [对象 description]),利用这种方法是可以打印对象的,但是默认是显示的类名和对象在内存中的地址。而我们需要更详细的内容,那么可以重新定义Description方法。
1 //方法实现 2 - (NSString *) description { 3 return [NSString stringWithFormat: @"name = %@, age = %i, height = %i, width = %i", _name, _age, _height, _width]; 4 } 5 6 //打印(u 是创建的对象) 7 NSLog(@"%@", [u description]);