NSMutableString 的方法介绍

NSMutableString* str = [NSMutableString stringWithString:@"Hello World!"];
NSLog(@"%@", str);


= 等号右边直接上 @"Hello World!"
会报错。说 nsstring 与左边的类型不一致。
现在这样用就好了。


@interface NSMutableString : NSString
NSMutableString 是基于 NSString 来的。

- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;


- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
- (void)deleteCharactersInRange:(NSRange)range;
- (void)appendString:(NSString *)aString;
- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
- (void)setString:(NSString *)aString;


appendFormat
追加变量字符串。


appendString
追加固定字符串。


deleteCharactersInRange:
删除从位置X 到位置 Y 的所有字符。


insertString:atIndex:
在指定位置插入字符串。


replaceCharactersInRange:withString
将从位置X 到位置Y 的字符串替换成***。


replaceOccurrencesOfString:withString:options:range:

------------------

在NSString中,需要用一个字符代替NSString字符串里面的某个特别的字符,此时使用[NSString stringByReplacingOccurrencesOfString: withString:];

而在string中,需要用一个字符代替string字符串里面的某个特别的字符,此时使用

[string replaceOccurrencesOfString:(NSString *) withString:(NSString *)]

[string replaceOccurrencesOfString:@"A" withString:@"B" options:NSCaseInsensitiveSearch range:NSRange){0,[string length]}];

------------------

setString:

当你创建了一个可变的字符串,该setString:方法可以让你指定一个新值实例:

NSMutableString* str = [NSMutableString stringWithString:@"Hello World!"];
        [str setString:@"Bad World!"];
        NSLog(@"%@", str);

2014-03-06 09:09:21.871 prog1[53569:303] Bad World!

--------------------

什么时候用可变字符串呢?

看二段代码

NSString * indices = @"" ;
 for ( int i = 0 ; i < 1000 ; i ++ ) {
     indices = [ indices stringByAppendingFormat: @"%d" , i ];
 }

静态字符串

循环一千次占用内存:1.76MB,不要问我怎么来的,我也在想知道。是我翻译来的。原文看参考。


NSMutableString * indices = [ NSMutableString stringWithCapacity: 1 ];
 for ( int i = 0 ; i < 1000 ; i ++ ) {
     [ indices appendFormat: @"%d" , i ];
 }

可变的字符串,循环一千次占内存19 KB,此类型能动态改变变量的长度。占一字节或二字节,太好了。这功能。

参考:http://rypress.com/tutorials/objective-c/data-types/nsstring.html

你可能感兴趣的:(NSMutableString 的方法介绍)