一、NSNumber
1> 可以使用对象来封装基本数值;
2> NSNumber类可以包装基本数据类型,还包括无符号版本和各种long型数据及long long整型数据;
3> 常用方法:
NSNumber类包装基本数据类型:
+ (NSNumber *)numberWithChar:(char)value;
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithFloat:(float)value;
+ (NSNumber *)numberWithBool:(BOOL)value;
将一个基本类型封装到NSNumber后,使用以下方法重新获得:
- (char)charValue;
- (int)intValue;
- (BOOL)boolValue;
- (NSString *)stringValue;
二、NSValue
1> NSNumber实际上是NSValue的子类,NSValue可以封装任意值;
2> 可以用NSValue将结构放入NSArray和NSDictionary中;
3> 常用方法:
创建新的NSValue:
+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type;
使用getValue:来提取数值(传递的是要存储这个数值的变量的地址)(先找地址再取值):
- (void)getValue:(void *)value;
三、NSNull
在关键字下如果属性是NSNull表明没有这个属性,没有数值的话表明不知道是否有这个属性。
+ (NSNull *)null; // 总返回一样的值
四、NSFileManager
1> NSFileManager允许对文件系统进行操作(创建目录、删除文件、移动文件或获取文件信息);
2> 常用方法:
创建一个属于自己的NSFileManager对象
+ (NSFileManager *)defaultManager;
判断路径是否存在:
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory;
五、NSDate
1> NSDate是用于处理日期和时间的基础类;
2> 常用方法:
获取当前的日期和时间:
+ (instancetype)date; // 它是一个自动释放的对象
获取与当前时间间隔一定时差的日期:
+ (instancetype)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs; // 接受一个NSTimeInterval参数,该参数是一个双精度值,表示以秒为单位的时间间隔。通过该参数可以指定时间偏移的方式;对于将来的时间,使用正的的时间间隔;对于过去的时间,使用负的时间间隔。
从1970开始走过的秒数:
+ (instancetype)dateWithTimeIntervalSinceNow;
3> NSDateFormatter日期格式类常用方法:
将日期转为字符串:
- (NSString *)stringFromDate:(NSDate *)date;
将字符串转为日期:
- (NSDate *)dateFromString:(NSString *)string;
六、NSData
1> NSData类包装了大量字节,我们可以获得数据的长度和指向字节起始位置的指针;
2> NSData对象是不可改变的,它们被创建后就不能改变,NSMutableData支持在数据内容中添加和删除字节;
3> 常用方法:
创建:
+ (instancetype)dataWithBytes:(const void *)bytes length:(NSUInteger)length;
返回对象的字节数:length的get方法;
返回指向某个对象起始位置的指针:bytes的get方法;
七、写入和读取属性列表
1> 集合属性列表类(NSArray、NSDictionary)具有一个-writeToFile:atomically:方法,用于将属性列表写入文件;
2> NSString和NSData也具有writeToFile:atomically:方法,但是只能写出字符串和数据块;
3> 可以使用+arrayWithContentsOfFile:方法读取文件;
4> writeToFile:atomically:方法中的atomically:参数的值为BOOL类型,用于通知是否应该首先将文件保存在临时文件中,当文件成功保存后,再将临时文件和原始文件交换,这是一种安全机制。