5 3.Foundation2-NSString的创建
NSSTring的创建
1)、创建常量字符串
NSString *string = @”This is a String!”;
2)、创建空字符串,给予赋值
NSString *string = [ [NSString alloc] init];
String = @”This is a String! ”;
3)、通过字符串创建字符串
[[NSString alloc] initWithString : @”This is a String!”];
// 或者 [[NSString alloc] initWithFormat : @”My age is %i”, 17 ];
4)、用标准C创建字符串
char *cString = “这是一串中文”;
[[NSString alloc] initWithCString : cString encoding:NSUTF8StirngEncoding];
或者 [[NSString alloc] initWithUTF8String : cString];
//字符串编码可以在NSString.h中查阅
例一:
Main.m
// // main.m // Foundation1 - 结构体 // // Created by qwz on 13-12-9. // Copyright (c) 2013年 renhe. All rights reserved. //
#import <Foundation/Foundation.h>
#pragma mark NSString的创建 void stringCreate(){ //这种方式创建出来的字符串是不需要释放的 NSString *str1 = @"A String!"; NSString *str2 = [[NSString alloc] init];
str2 = @"A String!"; [str2 release];
NSString *str3 = [[NSString alloc] initWithString:@"A String!"]; [str3 release]; //不需要管理内存 str3 = [NSString stringWithString:@"A String!"];
NSString *str4 = [[NSString alloc] initWithUTF8String:"A String!"]; [str4 release]; str4 = [NSString stringWithUTF8String:"A String!"];
NSString *str5 = [[NSString alloc] initWithFormat:@"My age is %i and height is %.2f",19, 1.55f];
// 这句代码放在中间会造成2个错误; // 1、前面创建的字符串没有被释放 // 2、后面创建的字符串会释放过度,造成野指针错误 //str5 = [NNString stringwithFormat::@"My age is %i and height is %.2f",19, 1.55f]
NSLog(@"str5:%@", str5); [str5 release]; str5 = [NSString stringWithFormat:@"My age is %i and height is %.2f",19, 1.55f]; }
void stringCreate2(){ //从文件中读取文本 NSString *path = @"/users/apple/Desktop/test.txt"; //这个方法已经过期,不能解析中文 //NNString *str1 = [NNString stringWithContentOfFile:path];
//定义一个NSError变量 NSError *error;
//指定字符串编码为UTF-8 //NSString *str1 = [NSStrng stringWithContentOfFile:path encoding:NSUTF8StringEncoding error:nil]; --该行是正确的 NSString *str1 = [NSString stringWithContentOfFile:path encoding:NSUTF8StringEncoding error:&error];
if(error == nil){ NSLog(@"读取文件成功:%@", str1); }else{ NSLog(@"读取文件失败:%@", error); }
NSURL *url = [NSURL URLWithString:@"/users/apple/Desktop/test.txt"]; NSString *str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@", str2);
NSURL *url2 = [NSURL URLWithString:@"http://www.baidu.com"]; NSString *str3 = [NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@", str3); }
int main(int argc, const char * argv[]) { @autoreleasepool { //stringCreate(); stringCreate2(); } return 0; }
|