Objective-C 基础知识之(九):创建对象的方法

来源:互联网 发布:非凡软件站 恶心 编辑:程序博客网 时间:2024/06/05 00:00

基本观念:

对象可以用@“xx”表示,也可以用对象名表示,一般为了简洁和能够重复使用某个对象,应使用对象表示。

 

1、OC中使用类创建对象的声明方法 

(1)init初始化方法:

标志:

init 创建一个空对象,然后根据需求使用存取方法赋初值;

NSString * a1 = [ [NSString alloc]  init];

 

initWit XXX创建对象的同时根据需求赋初值;

NSString * a2 = [ [NSString alloc]  initWithFormat:@”xxx”];

 

NSString:initWithFormat:<#(NSString*), ...#>

NSArray:initWithObjects:<#(id),...#>, nil

NSSet: initWithObjects:<#(id),...#>, nil

NSDictionary:initWithObjectsAndKeys:<#(id),...#>, nil

Nil为结束标志符。

 

(2)类方法的初始化方法:

标志:

对象类型名去掉NS后的小写,string,创建一个空对象,然后根据需求使用存取方法赋初值;

NSString * b1 = [NSString  string];

 

小写对象类型名+with,创建对象的同时根据需求符初值;

NSString * b2 = [NSString  stringWithFormat:@”xxx”];

 

NSString:stringWithFormat:<#(NSString*), ...#>

NSArray:arrayWithObjects:<#(id),...#>, nil

NSSet: setWithObjects:<#(id),...#>, nil

NSDictionary:dictionaryWithObjectsAndKeys:<#(id),...#>, nil

Nil为结束标志符。

 

(3)使用字面量(语法糖) 创建不可变的对象:


NSString创建对象使用@”字符串”对象直接创建,创建的是不可变对象。


数组直接在@后加[]:

NSArrary * array =@[@”10”, @”20”, @”30”];

 

字典直接在@后加{}:

NSDictionary * dic =@{@”name”: @”zhangsan”};

 

(4)NSString还可以通过导入文件创建初始对象。

WithContentsOfFile: @”文件路径,可以单独设置对象引用”

encoding: NSUTF8StringEncoding

error: nil / &error

如果需要查看错误信息:NSError * error = nil;

 

a、initWithContentsOfFile:

initWithContentsOfFile:<#(NSString*)#> encoding:<#(NSStringEncoding)#> error:<#(NSError*__autoreleasing *)#>

 

b、stringWithContentsOfFile:

stringWithContentsOfFile:<#(NSString*)#> encoding:<#(NSStringEncoding)#> error:<#(NSError*__autoreleasing *)#>

 

注:

(1)可变类型的对象,一般创建的都为未赋初值的对象。因为对象是可变的,故可以给对象增加值,即赋值。

(2)NSString用快捷方式创建的对象是不可变对象。

(3)创建数组和字典都可以使用语法糖,但是语法糖创建的是不可变的对象。

(4)字典的创建需要使用键值对Key->Value;

(5)init和类方法声明字典对象时,参数和key值对应的顺序为:value,key1, value2, key2,……

语法糖方法声明对象时,参数和key值的对应顺序相反,并且它们之间由冒号(:)间隔。

(6)使用字典管理数据的优势:可以使用key访问存储的数据。

 

2、有无返回值确定

有返回值:

根据获取的对象类型确定返回值类型。


无返回值:

操作可变对象时,一般都没有返回值。可变对象返回它本身。

 

3、长度,元素个数的获取

字符串长度:[NSString length]; 等价于NSString.length;

元素个数:[NSArray count];等价于 NSArray.count;

集合个数:[NSSet count];等价于 NSSet.count; 


4、NSRange的创建和打印,返回值为NSUInteger

NSRange range = NSMakeRange(3, 6);// = {3,6};

NSLog(@"%lu %lu", range.location,range.length);

NSLog(@"%@",NSStringFromRange(range));

 

5、字面量(语法糖的使用种类)

表示常量字符串对象

NSString * string = @"love";

       

表示数字对象NSNumber

NSNumber * number = @10;

       

创建不可变数组对象

NSArray * array = @[@"11",@"12"];

       

通过下标访问数组元素

NSLog(@"%@", array[1]);

       

创建不可变字典对象

NSDictionary *dic = @{@"name":@"zhangsan", @"gender":@"female"};

       

通过key访问value

NSLog(@"%@",dic[@"name"]);


0 0
原创粉丝点击