NSString的创建方法(一)

NSString是OC里的三大基本数据结构之一, 也是我们经常使用的数据结构, 关于NSString的使用有好几种方法, 这里只讲解前三种创建和简单使用的方法.

除了直接使用NSString *str = @"Hello, World!"这种普通直接的创建方法, 还有使用下面的三种方法.

第一种:

initWithString: 通过复制一个已有的a字符串, 并且返回给第二个b字符串对象, 所以它们的内容和地址是完全一模一样的, 这个和copy的方法有些类似.

第二种:

initWithUTF8String:通过复制一个C类型的字符串, 并且返回给字符串对象, 和普通创建的方法有些类似, 但不完全相同.

第三种:

initWithFormat:通过给定初始化的字符串, 还可以再添加其他的参数(用逗号隔开), 完成后, initWithFormat就会把初始化的字符串和参数结合在一起, 拼成一个新的字符串.

下面是简单的实验例子.

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSString *str = @"Helloc, World!";  //字符串的简单创建.
        NSLog(@"\nstr = %@", str);  //字符串的打印.

        NSString *str2 = [[NSString alloc]initWithString:str];
        //initWithString的意思就是返回一个指定的字符串对象里的内容, 或者是返回一个字符串.
        //initWithString后可以写对象名也可以写字符串, 但是如果写字符串的话会报警告, 而且写字符串那还不如不用initWithString.
        //直接写成NSString *str2 = @"Helloc, World"好一些.
        NSLog(@"\nstr2 = %@", str2);

        NSString *str3 = [[NSString alloc]initWithUTF8String:"Helloc,World!"];
        //用C的字符串, 创建OC的字符串对象. 注意: 这里只能返回一个字符串, 而不能返回字符串对象.
        //一旦在后面书写字符串对象, 那就会出错.
        NSLog(@"\nstr3 = %@", str3);

        NSString *str4 = [[NSString alloc]initWithFormat:@"Hello %d %c", 5, ‘A‘];
        //用格式符拼接成一个字符串
        NSLog(@"\nstr4 = %@", str4);

/*
    注意:字符串从刚开始创建, 无论是使用什么方法, 都是Helloc, World!, 永远不会改变.

*/

        //记住, 因为这里是用alloc方法创建, 所以我们需要用手动释放引用计数.
        //当然, 你也可以自己创建一个自动释放池, 把这里对象都放进释放池里, 结束后就自动释放.
        [str2 release];
        [str3 release];
        [str4 release];

    }
    return 0;
}

输出的结果:

2014-10-11 09:15:52.307 NSString[492:303]
str = Helloc, World!
str = 0x100001030
2014-10-11 09:15:52.308 NSString[492:303]
str2 = Helloc, World!
str2 = 0x100001030
2014-10-11 09:15:52.309 NSString[492:303]
str3 = Helloc,World!
str3 = 0x1001038b0
2014-10-11 09:15:52.309 NSString[492:303]
str4 = Hello 5 A
str4 = 0x100103740
Program ended with exit code: 0
时间: 2024-08-09 00:01:26

NSString的创建方法(一)的相关文章

NSString的创建方法(二)

上一篇文章我们已经讲解过关于NSString的前三种创建方法, 现在我们来讲另外三种创建的方法, 这三种方法也叫做创建临时字符串. 这三种方法分别就是: stringWithUTF8String:将一个C类型的字符串转换成一个OC的字符串, 和前面提到的initWithUTF8String有些类似, 但是不同的是, 它不使用alloc来创建. stringWithFormat:将一个已经初始化的字符串和一些自定义参数返回给字符串对象, 和initWithFormat类似, 但它也不使用alloc

三.OC基础--1.NSString的创建和使用,2多文件开发,3类方法,4封装

三:OC--1.NSString的创建和使用, 1,创建常量字符串,注意使用“@“符号. NSString *astring = @"This is a String!"; //后面的是常量,前面的是指针变量 2,NSString *s1 = [NSString new];//没有意义 s1 [email protected]"jian le ma"; 3.创建字符串的第三种方法 // 格式化创建字符串(按照指定的格式创建字符串) NSString *imgName

ios开发中object-c中UTF-8 和 GBK 的 NSString 相互转化的方法

应用都要遇到一个很头疼的问题:文字编码,汉字的 GBK 和 国际通用的 UTF-8 的互相转化稍一不慎, 就会满屏乱码.下面介绍 UTF-8 和 GBK 的 NSString 相互转化的方法 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); char* c_test = "北京"; int nLen = strlen(c_test); NSS

JS-DOM ~ 03. 子节点的操作、style.样式和属性、dom元素的创建方法及操作、14个例题、主要是利用js直接控制html属性

带有Element和不带的区别 a)  带Element的获取的是元素节点 b)  不带可能获取文本节点和属性节点 获取所以子节点 a)   . childNodes b)   . children c)   . parentNode . children [索引] . children:获取所有子节点 opacity:0-1:透明度 alpha(opacity:百分数):IE6/7/8透明度 先绑定事件再进行循环 previousNode()上一个兄弟节点 alert(变量名)可测试变量名是否

UTF-8 和 GBK 的 NSString 相互转化的方法

应用都要遇到一个很头疼的问题:文字编码,汉字的 GBK 和 国际通用的 UTF-8 的互相转化稍一不慎, 就会满屏乱码.下面介绍 UTF-8 和 GBK 的 NSString 相互转化的方法 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); char* c_test = "北京"; int nLen = strlen(c_test); NSS

对象创建方法

创建方法1.构造函数语法(构造函数的名称通常是首字母大写) 1 var myObj = new Object(); 2 myObj['key1']='value'; 3 myObj['key2']='value'; 4 myObj.key='value'; 5 myObj.key3=' '; 6 myObj.key='value';7 myObj.functionName=function(){ statements;}; 2.字面量语法 1 var myObj = { 2 key: value

EF实体框架创建方法

EF实体框架创建方法: 1.添加EF框架: 在工程中,先添加文件夹:DataModel(方便管理),在文件夹中再添加新项:数据--ADO.Net实体数据模型: 命名为: DataModel.edmx.并勾选“确定对象名称的单复数形式”(会创建集合和项的名称区别). 2.数据模型文件说明: DataModel.edmx:生成的数据模型文件包.DataModel.Context.cs:包括模型中,所有表集合的管理类.DataModel.tt子节点下的文件:表数据类的定义(映射). 3.问题: 1.生

iOS开发中单例对象的标准创建方法

//标准的单例写法 //以创建歌曲的管理者为例进行创建.+(instancetype) sharedQYSongManager { static QYSongsManager *songManager =nil; //采用GDC标准单例实现方法 static dispatch_once_t onceToken; //Executes a block object once and only once for the lifetime of an application. dispatch_onc

Object C (2) --- NSString的创建

NSString *str1 = @"a string"; NSString *str2 = [[NSString alloc] init]; str2 = @"a string"; [str2 release]; NSString *str3 = [[NSString alloc] initWithString:@"a string"]; [str3 release]; NSString *str4 = [NSString stringWith