-------------------------------------- android培训、java培训、ios培训期待与您交流! ---------------------------------
Foundation框架:
#import <Foundation/Foundation.h>
结构体:
NSRange(location length):NSMakeRange(2, 4);
NSPoint/CGPoint(x, y):CGPointMake(11, 11);
NSSize/CGSize(width,height):CGSizeMake(111, 11);
NSRect/CGRect(origin, size):CGRectMake(0,0, 100, 20);
// 查找某个字符串在字符串的范围;
// 如果找不到,length=0,location=NSNotFound==-1
NSRange r = [@”I love oc”, rangeOfString:@”love”];
CGPointZero:原点(0, 0)
CGPointEqualToPoint(); // 比较
NSString:不可变字符串
(子类)NSMutableString:可变字符串
// 集合类
// oc数组只能存放oc对象,不能存放非oc对象类型;不能存放nil;
NSArray:不可变数组
NSArray *a = @[@”jack”]; // 快速创建NSArray
可以使用a[0]快速访问
(子类)NSMutableArray:可变数组
// id obj代表着数组中的每一个元素
for (id obj in array) {} // 快速遍历
// 每遍历一个元素,调用一次block
// 并且当前元素和索引位置当做参数传给block
// stop停止标志,*stop = YES;停止
[array enumerateObjectsUsingBlock:
^(id obj, NSUInteger idx, BOOL *stop)
{
//执行语句;
}];
NSSet(NSMutableSet)
NSSet和NSArray的对比:
共同点:都是集合,都能存放多个oc对象;只能存放oc对象,不能存放非oc对象类型;本身都不可变,都有一个可变的子类
不同点:NSSArray有顺序,NSSet无序
NSDictionary(NSMutableDictionary)
NSDictionary *d = @{@”name”:@”jack”}; // 快速创建NSDictionary
可以使用d[@”name”]快速访问
字典不允许用相同的key,但允许有相同的value
字典是无序的
集合总结:
1 NSArray/NSMutableArray:
有序
快速创建:@[obj1, obj2]
快速访问元素:数组名[i]
2 NSSet/NSMutableSet:
无序
3 NSDictionary/NSMutableDictionary:
无序
快速创建:@{key1 : value1, key2 : value2}
快速访问元素:字典名[key]
NSNumber:[NSNumber numberWithInt:20];
@20; // 快速包装NSNumber对象
int age =11;
@(age); // 快速将age变量包装成NSNumber对象
NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue
NSValue:可以包装任何东西
NSDate:日期类
NSDateFormatter *f = [[NSDateFormatteralloc] init];
// y 年 M 月 d 日 H (24)时 h (12)时 m 分 s 秒
f.dateFormat = @”yyyy-MM-dd HH:mm:ss”; // 设置日期格式
[f dateFromString:日期字符串]; // 字符串转日期
[f stringFromDate:日期类对象]; // 日期转字符串
-------------------------------------- android培训、java培训、ios培训期待与您交流! ---------------------------------