1、NSData的创建:实例与类方法
-
data:创建一个不包含任何数据的空的NSData对象
-
dataWithBytes:length:/initWithBytes:length::复制C数组所包含的数据来初始化NSData的数据
-
dataWithBytesNoCopy:length:/initWithBytesNoCopy:length:直接利用C数组所包含的数据来初始化NSData对象。当该对象被执行malloc方法销毁自己时,程序会释放该C数组
-
dataWithBytesNoCopy:length:freeWhenDone:/initWithBytesNoCopy:length:freeWhenDone::直接利用C数组所包含的数据来初始化NSData对象,只有当最后一个参数为YES,且该对象被执行malloc方法销毁自己时,程序才会释放该C数组
-
dataWithContentsOfFile:/initWithContentsOfFile::直接读取文件内容,并利用文件内容来初始化NSData
-
dataWithContentsOfURL:/initWithContentsOfURL::直接读取URL关联内容,并利用该URL关联的内容来初始化NSData
-
dataWithData:/initWithData::直接使用另一个NSData所包含的数据来初始化新创建的NSData
2、访问NSData数据内容
-
bytes:返回该NSData所包含的数据
-
getBytes:length:获取NSData所包含的指定长度的数据
-
getBytes:range::获取NSData所包含的指定范围的数据
-
subdataWithRange::获取NSData所包含的指定范围的数据组成的NSData对象
-
writeToFile:atomically::将NSData数据写入文件
-
writeToURL:atomically::将NSData数据写入指定URL的资源
#import <Foundation/Foundation.h>
int main(int argc , char * argv[])
@autoreleasepool{
// 使用NSData读取指定URL对应的数据
NSData* data = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"http://www.crazyit.org/ethos.php"]];
NSLog(@"%ld" , [data length]);
// 定义一个长度为100的数组
char buffer[100];
// 将NSData指定范围的数据读入数组
[data getBytes:buffer range: NSMakeRange(103, 100)];
// 输出数组的内容
NSLog(@"%s" , buffer);
// 直接将NSData的数据用UTF-8的格式转换字符串
NSString* content = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"----------输出网页内容---------");
NSLog(@"%@" , content);
- (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b;
初始化对象。
不进行复制字节数组操作,直接设置字节指针为bytes,长度为length。
- (instancetype)i...
//对象方法创建
NSData *data1 = [[NSData alloc] init];
NSData *data2 = [[NSData alloc] initWithData:data1];
//类方法创建
NSData *data3 = [NSData data];
NSData *d
项目中一直用的 MKNetworkEngine
来来请求数据的,在改同事代码的时候,遇到一个新的接口,由于习惯,直接用AFNetWorking去请求了,但是遇到了问题,后台返回的数据 responseObject 为 6e616d65 223a225c
75353733 61222c22 6d6f6269 6c65223a .... 这种的数据,responseObject 为
_NSIn
Objective-C的IO机制:一些基本的文件管理API:
NSFileManager: 管理文件和目录,包括创建、删除、移动、复制文件;
NSFileHandle: 读取文件内容;
NSURL: 读取网络资源;
NSBundle:读取项目内部资源;一种独特的机制:对象归档
对象归档就是将OC对象转化为二进制流,然后将对象保存到磁盘或者网络上,以便能够程序能够从磁盘或者网络上恢复这个对象
NSData全部API学习。
学习NSData,在网上找资料竟然都是拷贝的纯代码,没人去解释。在这种网上没资料的情况下,整理这个API文件好难,好艰辛。在这贡献给大家了,么么哒~示例程序用红色标注。
/**************** Base 64 Options****************/
/***Base64是一组二进制到文本转化的方案,以ASSCII格式表示二进制数据,这些方案用来编码二进制数据以存储或者通过把多媒体文件转换成文本数据进行传输,这个能保证数据在传输的过程...
NSData创建后不可以再修改,NSMutableData可以再次修改。
NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用
在我们前面的几章中,分析了OC的runtime一些底层的数据结构以及实现机制。今天,我们就从一个OC对象的生命周期的角度,来解析在runtime底层是如何实现的。
我们创建一个对象(或对象引用)有几种方式?
Student *student = [[Student alloc] init];
Student *student2 = [Student new];
__weak Student *w...
首先看一段AF2.x经典代码:
+ (NSThread *)networkRequestThread {
static NSThread *_networkRequestThread = nil;
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
_networkR