/**************** Base 64 Options****************/
/*** Base64是一组二进制到文本转化的方案,以ASSCII格式表示二进制数据,这些方案用来编码二进制数据以存储或者通过把多媒体文件转换成文本数据进行传输,这个能保证数据在传输的过程中的完整性。Base64醉常见的用于是处理电子邮件附件,或者解码小图片。在iOS7之前,Base64的编码和解码是需要自己实现的或者是使用第三方库,但是现在苹果提供一些API来实现Base64功能 ***/
//4.base64编码中的一些设置选择
typedefNS_OPTIONS(NSUInteger, NSDataBase64EncodingOptions) {
NSDataBase64Encoding64CharacterLineLength =1UL << 0,
NSDataBase64Encoding76CharacterLineLength =1UL << 1,
NSDataBase64EncodingEndLineWithCarriageReturn =1UL << 4,
NSDataBase64EncodingEndLineWithLineFeed =1UL << 5,
} NS_ENUM_AVAILABLE(10_9,7_0);
//5.base64在解码过程中的option可选条件,下面选项表示在将诶吗过程中忽略不能识别的字节
typedefNS_OPTIONS(NSUInteger, NSDataBase64DecodingOptions) {
NSDataBase64DecodingIgnoreUnknownCharacters =1UL << 0
} NS_ENUM_AVAILABLE(10_9,7_0);
/**************** Immutable Data不可变的Data****************/
@interface NSData :NSObject <NSCopying,NSMutableCopying, NSSecureCoding>
//6.获取data长度的属性
@property (readonly)NSUInteger length;
//7.返回data对象的首指针
@property (readonly)const void *bytesNS_RETURNS_INNER_POINTER;
@end
@interface NSData (NSExtendedData)
//8.返回一个ASCII编码格式的字符串,采用的格式是data属性列表的格式。
@property (readonly,copy) NSString *description;
//9.取出data中指定长度的字节存入buffer这个提前声明的数组中
- (void)getBytes:(void *)buffer length:(NSUInteger)length;
//9.取出data中指定位置range的字节存入buffer这个提前声明的数组中
- (void)getBytes:(void *)buffer range:(NSRange)range;
//10.判断两个data是否相等
- (BOOL)isEqualToData:(NSData *)other;
//11.截图data指定位置的子data
- (NSData *)subdataWithRange:(NSRange)range;
//12.将data写入指定的文件
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
//13.将data写入指定的url
- (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;
//14.将data写入指定文件,并且有写入过程的设置条件,带错误信息
- (BOOL)writeToFile:(NSString *)path options:(NSDataWritingOptions)writeOptionsMask error:(NSError **)errorPtr;