黑马程序员——NSString&&构造方法

 黑马程序员——NSString&&构造方法

 

**NSString是OC中的创建字符串的类**

1、创建常量字符串,注意“@”字符

   NSString *a=@"this is a";

   NSString *

   输出字符串:NSLog(@"%@",);

2、用类创建字符串:

   NSString *a=[NSString new];

   a=@"字符串";

   输出字符串:NSLog(@"%@",);

3、格式化创建字符串

   NSString *a = [NSString stringWithFormat:@"格式化字符"];

   NSLog(@"%@",a);

4、用一个已经存在的字符串创建一个新的字符串

   NSString *a1=[[NSString alloc]initwithstring:旧字符串];

   NSLog(@"%@",a1);

 

**NSString字符串长度计算方法(不包含\0,因为是无符号类型的)**

1、通过调用NSString类的对象方法length获得字符串长度

   1)获取纯英文字符串

   NSString *a=@"this is a";

   NSUInteger len=[a length];

   NSLog(@"a length:%ld",len);或NSLog(@"a length:%ld",[a length]);

   2)字符串是中文的

   NSString *a=@"苹果";

   len=[a length];

   NSLog(@"length:%ld",len);

   OC中中英文都是一个字符

   C中一个汉字是3个字符

   3)中英文混合也是占一个字符

 

***构造方法***

构造方法:用来初始化对象的方法,是个对象方法,用“-”开头

为了让对象创建出来,成员变量就会有一些的固定值

   1)构造方法的调用

   完成创建一个可用对象:Person *p = [Person new];

   Person *p = [Person new]; 等价于:

   Person *p = [ [Person alloc] init];

   此时发生了以下三件事:

   1、使用alloc方法分配存储空间,返回分配的对象。

   2、使用init方法初始化对象。

   3、放回对象的首地址。

   4、初始化完成后,所有成员变量的值都为0.

OC中对象进行初始化的方法:init是一个对象方法

**用alloc的时候最好写成[ [Person alloc] init];

 

**如何重写构造方法**

-(instancetype)init {

self=[super init];

//判断父类是否初始化完成

if(self){

//写自定义初始化代码

}

return self;//self是指方法的调用者

}

 

**自定义构造方法**

   1.对象方法,以-开头。

   2.返回值类型为id或instancetype类型

   3.方法名以initWith开头(要先在声明文件中声明一下)

//如果父类中已经初始化某个性质,在子类中又调用这个性质,在判断父类是否初始化的时候,不需要在初始化:

if (self=[super initwithname:name angage :age]){

//不需要name与age再初始化

_sno=sno;

}

 

super使用:

   [super 对象];调用父类某一对象,先让父类把事情做了

 

posted @ 2015-10-26 14:44  gaozp  阅读(136)  评论(0编辑  收藏  举报