基本观念:
对象可以用@“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"]);