【集合中的内存管理,常用结构体,基本数据类型和包装数据类型的转换 NSDate】

来源:互联网 发布:java float 比较相等 编辑:程序博客网 时间:2024/05/17 04:23
【集合中的内存管理】


在手动内存管理的情况下,每一个对象增加到集合,这个对象的引用计数设就会加1
当从集合中删除一个对象的时候,这个对象的引用计数就会减一


在自动内存管理的情况下,当一个对象添加到集合中,集合会对这个对象产生一个强指针
从集合中删除一个对象的时候,就把这个强引用给释放了


【常用结构体】
1、NSRange
2、NSPoint(CGPoint),表示一个点,有横纵坐标两个元素
3、NSSize(CGSize),表示一个大小,有快读和高度两个元素
4、NSRect(CGReck),表示位置和大小,有origin表示位置(CGPoint)和size(CFSize)两个元素


【基本数据类型和包装数据类型的转换】
以上四种数据类型(对象 valueWith-)这样调用,就会返回NSValue类型的包装


自定义数据类型时间
typedef struct{
int year;
int month;
int day;
}ZCDate;
ZCDate date = {2015,8,7};


结构体转换为包装类型
NSValue *value = [NSValue valueWithByte:&date objCType:@encode(CZDate)];


包装类型转为结构体
ZCDate d1;
[VALue getValue: &date1]


【NSDate】
NSDate *date = [NSDate date];
【格式化】
创建日期格式化对象
NSDateFormat * fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = "yyyy年MM月dd日 hh小时mm分钟ss秒 Z时区"
日期格式化成字符串
NSString *dateStr = [fmt stringFromDate:date];
字符串转日期
NSDate *d1 = [fmt dateFromString:dateString]
【比较两个日期是否相同】
(对象 isEqualToDate 另一对象)
(对象 conpare 另一对象)
【获取两个日期中较早的一个】
(对象1 earlierDate 对象2)
【创建一个晚点的时间,像定闹钟】
(对象 dateWithIntervalSinceNow:秒),返回一个从当前时间往后多少秒的时间


日历Calendar,主要用于日期的计算
【获取当前日历】
(对象 currentCalendar)
【获取日历的一部分】


(NSDateComponents *)(对象 components:要获取的段,例如年|月|日|时|分|秒 fromDate:date)


所有的元素都存在NSDateComponents里
【使用日历计算两个日期的差值】
(对象 components fromDate toDate options)
【将NSDateComponents转换成日期】
(对象 dateFromComponents:)


文件操作
【文件管理器】
创建文件和文件夹,读取文件的一些属性
获取文件管理器
0 0
原创粉丝点击