您的位置:首页 > 移动开发 > Objective-C

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

2015-09-15 21:54 549 查看
基本观念:

对象可以用@“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"]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: