NSString 的理解
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掉阿~~
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中的前四个字符
6,常见错误
NSString *aString = [NSString alloc] initWithString:nil];(会出错,相当于用nil初始化)
NSString *aString = [NSString alloc] initWithString:@""];(ok)
<!--StartFragment-->
<!--StartFragment-->
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formattersetDateFormat:@"MM-dd-hh-mm-ss"];
NSString*locationString=[formatterstringFromDate: [NSDate date]];
NSArray*timeArray=[locationStringcomponentsSeparatedByString:@"-"];
float value_D=?? [[timeArray objectAtIndex:1]floatValue]; ????
float value_h=? [ [timeArray objectAtIndex:2]floatValue]; ????
float value_m= [ [timeArray objectAtIndex:3]floatValue]; ????
float value_s=? [ [timeArray objectAtIndex:4]floatValue]; ????
float? value_All=value_D*24*60*60+value_h*60*60+value_m*60+value_s;
[formatter release];
9,常见方法
<!--StartFragment--> <!--StartFragment--> NSString方法 +(id) stringWithContentsOfFile:path encoding:enc error:err 创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误 +(id) stringWithContentsOfURL:url encoding:enc error:err 创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误 +(id) string 创建一个新的空字符串 +(id) stringWithString:nsstring 创建一个新的字符串,并将其设置为nsstring -(id)initWithString:nsstring 将分配的字符串设置为nsstring -(id) initWithContentsOfFile:path encoding:enc error:err 将字符串设置为path制定的文件的内容 -(id) initWithContentsOfURL:url encoding:enc error:err 将字符串设置为url(NSURL*)url的内容,使用字符编码enc,如果非零,则返回err中的错误 -(id) (UNSIgned int)length 返回字符串中的字符数目 -(unichar)characterAtIndex:i 返回索引i的Unicode字符 -(NSString *)substringFromIndex:i 返回从i开始知道结尾的子字符串 -(NSString *)substringWithRange:range 根据指定范围返回子字符串 -(NSString *)substringToIndex:i 返回从该字符串开始到索i的子字符串 -(NSComparator *)caseInsensitiveCompare:nsstring 比较两个字符串,忽略大小写 -(NSComparator *)compare:nsstring 比较两个字符串 -(BOOL)hasPrefix:nsstring 测试字符串是否以nsstring开始 -(BOOL)hasSuffix:nsstring 测试字符串是否以nsstrng结尾 -(BOOL)isEqualToString:nsstring 测试两个字符串是否相等 -(NSString *) capitalizedString 返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写) -(NSString *)lowercaseString 返回转换为小写的字符串 -(NSString *)uppercaseString 返回转换为大写的字符串 -(const char*)UTF8String 返回转换为UIF-8字符串的字符串 -(double)doubleValue 返回转换为double的字符串 -(float)floatValue 返回转换为浮点值的字符串 -(NSInteger)integerValue 返回转换为NSInteger整数的字符串 -(int)intValue 返回转换为整数的字符串 ? NSMutableString方法 +(id) stringWithCapacity:size 创建一个字符串,初始包含size的字符 -(id) initWithCapacity:size 使用初始容量为size的字符串来初始化字符串 -(void) setString:nsstring 将字符串设置为nsstring -(void) appendString:nsstring 在接收者的末尾附加nsstring -(void) deleteCharactersInRange:range 删除指定range中的字符 -(void) insertString:nsstring atIndex:i 以索引i为起始位置插入nsstring -(void) replaceCharactersInRange:range withString:nsstring 使用nsstring替换range指定的字符 -(void) replaceOccurrencesOf String:nsstring withString:nsstring2 options:opts range:range 根据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾 开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合)
<!--StartFragment-->
在你自己的初始化方法中,需要调用自己的指定初始化函数或者超类的指定初始化函数。一定要将超类的初始化函数的值赋给self对象,并返回你自己的初始化方法的值。超类可能返回一个完全不同的对象。
<!--EndFragment-->