前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NSFileManager和NSFileHandler的作用, category的理解

NSFileManager和NSFileHandler的作用, category的理解

作者头像
tandaxia
发布2018-09-27 12:25:23
5910
发布2018-09-27 12:25:23
举报
文章被收录于专栏:谈补锅

NSFileManager类可以管理文件系统中的文件和目录,也可以定位、判断是否存在、创建、拷贝、删除文件和目录,还可以获得文件和目录的信息;

对于读写文件,NSFileManager只可以读写字符串类型的文件,而NSFileHandler是文件描述符的封装类,可以读写文件(图片、设备、网络接口)、套接字、管道和设备。

代码示例:

代码语言:javascript
复制
/**
 *  读文件
 */
- (void)readFile{
    //1、实例化
    NSFileHandle *readFile = [NSFileHandle fileHandleForReadingAtPath:@"/tmp/Hello.txt"];
    //2、读文件到文件尾部
    NSData *buffer = [readFile readDataToEndOfFile];
    //3、将NSData转换成字符串
    NSString *temp = [[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding];
    //4、关闭文件
    [readFile closeFile];
}

/**
 *  写文件
 */
- (void)writeFile{
    //1、创建写文件处理器
    NSFileHandle *writeFile = [NSFileHandle fileHandleForWritingAtPath:@"/tmp/newFile.txt"];
    //2、将字符串转换成NSData
    NSString *contents = @"hello everyone";
    NSData *buffer = [contents dataUsingEncoding:NSUTF8StringEncoding];
    //3、写NSData
    [writeFile writeData:buffer];
    //4、关闭文件
    [writeFile closeFile];
}

关于category的一些理解

刚才在看category, 想到分类可以用来添加方法,子类也可以用来添加方法,子类还可以添加实例变量,不是比分类更好吗,为啥还要使用分类?

设想一个场景:想给系统类比如NSString新添加一个方法,而这个方法在整个项目中会大量用到,这时候如果使用子类A来添加这个方法,那么其他NSString的子类想使用这个方法,必须继承子类A,才能使用这个方法。但是有时候我们并不想继承子类A,分类的使用优势这时候出来了。

     使用category给NSString新添加一个方法,其他NSString的子类想使用这个方法,直接继承NSString,并引用分类就可以使用了 !

  分类通常作为一种组织框架代码的工具来使用。

    查了下资料,介绍分类的用途:

1、在不创建继承类的情况下实现对已有类的扩展;

2、简化类的开发工作。例如,当一个类需要多个程序员协同开发时,分类可以将同一个类根据用途分别放在不同的源文件中,从而便于程序员独立开发相应的方法集合;

3、将常用的相关方法分组;

4、在没有源代码的情况下可以用来修复bug

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-03-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档