字符串是程序设计最常用的数据类型之一了。在Mac/iPhone编程中,苹果为我们提供了一个不同的字符串类型NSString。有别与普通的String为数据类型,NSString其实是一个对象类型。NSString是NSObject(Cocoa Foundation的基础对象)的子类,所以具有NSObject的所有特性,好的和好的… ….
小常识:NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT.@是Cocoa元素的前缀,很多地方我们会看到,比如接下来...
1, 创建一个NSString对象 简单方法:
NSString *aString = @"我是个NS字符串!"; //除了引号外加@, 没别的区别 *上面的不需要操心内存管理哟~ 复杂一点儿:(需要内存管理的)
NSString *aString = [[NSString alloc] initWithFormat:@"这也是个NS字符串!"]; *initWithFormat是其中一个初始化方法,常用的还有
//从一个文件读取需要的内容- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error//从一个地址读取需要的内容-
(id)initWithContentsOfURL:(NSURL
*)url
encoding:(NSStringEncoding)enc
error:(NSError **)error
*以上方法得到的NSString的retain值为1,所以记得release掉阿~~
////////////////////////////////////////////////////////////////////////////////aString = @"I am a string that 2 years old, man!"; 这种情况下,字符串储存和管理由系统做,我们不用操心。
aString = [NSString stringWithFormat:@"I am a string that %d years old, man!",2]; 第二种情况下,我们需要去retain和release这个字符串,系统不管。
////////////////////////////////////////////////////////////////////////////////
2,使用一个NSString对象
NSString *aString = @"This is a NSString"; NSLog(aString); //在控制台输出信息,该函数方法需要一个NSString对象作为参数 NSLog("这样不会好使的"); NSLog(@"这样就会好使拉~");
再比如设置一个UIView的标题:
[UIView setTitle:aString]; [UIView setTitle:@"标题"]; UIView.title = aString;
3,释放NSString
[aString release]; //对象将被系统释放掉咯
*记得不要释放直接用 = @”xxx” 的NSString对象哟,系统会管的~
4,快速使用一个NSString
NSLog([NSString stringWithFormat:@"一个NS字符串"]);
//这种快速方法返回的是一个retain为1,autorelease的对象,不需要操心它的内存管理
5,常用方法
我喜欢NSString的地方就在于很多方法非常方便,比如:
nString = [aString substringToIndex:4]; //nString将得到aString中的前四个字符