OC基础数据类型-NSData

本文介绍了Objective-C中的NSData类及其常用方法,包括数据长度、字节读取、Base64编码和解码等。还讨论了Base64在数据传输和存储中的作用,以及iOS7后苹果提供的Base64 API。
摘要由CSDN通过智能技术生成


/****************        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 <<

} 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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值