iOS开发---分类和扩展(Categories和Extensions)
1 #import “UIViewController.h”
2 @interface UIViewController(CustomView)
3 -(void)extMethod;
4 @end
1 #import “UIViewController+CustomView.h”
2 @implementation UIViewController(CustomView)
3 -(void)extMethod;
4 @end

1 @interface MyObject:NSObject
2 {
3 NSNumber* number;
4 }
5 -(NSNumber*)getNum;
6 @end
7
8 @interface MyObject(Setter)
9 -(void)setNum:(NSNumber*)num;
10 @end
11
12 @implementation MyObject
13 -(NSNumber*)getNum
14 {
15 return number;
16 }


1 @interface MyObject:NSObject
2 {
3 NSNumber* number;
4 }
5 -(NSNumber*)getNum;
6 @end
7
8 @interface MyObject() //注意这里的括号里面是没有名字的
9 -(void)setNum:(NSNumber*)num;
10 @end
11
12 @implementation MyObject
13 -(NSNumber*)getNum
14 {
15 return number;
16 }
17
18 -(void)setNum:(NSNumber*)num
19 {
20 number = num;
21 }
22 @end

3.私有扩展
在以往写代码时,我们经常是把声明写在.h文件中,把实现写在.m文件中.
但是在实际开发中,如果把声明写在.h文件中会暴露程序很多属性(成员变量、成员变量的get和set方法),为了安全考虑,引入了类扩展的概念.
类扩展中的属性是私有的。在进行程序开发时,比如在ViewController.m文件中,常常会发现在
@implementation
@end;
上面多了一个:
@interface ViewController ()
//
@end;
上面代码就是类扩展,也就是类的私有扩展,以后就可以把以往写在声明里的代码写在这里面
iOS开发---分类和扩展(Categories和Extensions)的更多相关文章
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- ios开发分类--NSDate+Helpers
#import <Foundation/Foundation.h> @interface NSDate (Helpers) @end #import "Date.h" ...
- (转)iOS分类和扩展(Categories和Extensions)
分类(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法. 此外,分类能够保证你的实现类和其他的文件区分开. #import “UIView ...
- Categories VS Extensions (分类 vs 扩展)
转载翻译自:http://rypress.com/tutorials/objective-c/categories 一.Categories(分类) Categories是一个把单个类定义分 ...
- iOS 类别和扩展(Categories和Extensions)
分类(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法. 此外,分类能够保证你的实现类和其他的文件区分开. 1 #import “UI ...
- iOS项目开发日常之创建文件(协议、类、分类、扩展)
iOS项目开发过程中,是以不断创建文件的形式进行着的. 创建得比较频繁的文件类型是: 这两个类型中创建的文件有:子类.分类.扩展.协议四种文件,如下: 这四类文件是频繁创建的,我们来看一下各自分 ...
- iphone 开发Categories 、Extensions 区别 --转
Category和Extension这两个概念,即便对于Java程序员,可能也会感到陌生.这是Objective C为程序员提供的两个强大的动态机制——简单地说,它们允许程序员为已有的对象添加新的方法 ...
- iOS开发笔记系列-基础5(分类和协议)
分类 在Objective-C中,除了通过新建子类的方式来向类添加新方法外,还可以通过分类的方式.分类提供了一种简单的方式,将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式, ...
- iOS中的分类和扩展
一.什么是分类? 概念:分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体指针.根据下面源码组成可以看到它没有属性列表,原则上是不能添加成员变量(其实可以借助运行时功能,进行关联 ...
随机推荐
- CentOS 7将网卡名称eno16777736改为eth0
http://www.linuxidc.com/Linux/2015-09/123396.htm Linux系统版本:CentOS_7(64位) 一.前言: 今天将CentOS 6.5装回了CentO ...
- HTML、CSS小知识--兼容IE的下拉选择框select
HTML <div class="s_h_ie"> <select id="Select1" disabled="disabled& ...
- 新手接触java
第二个程序,求同时被3,5,7整除
- iterator 及 迭代器模式(转发)
Iterator definitions An iterator is any object that, pointing to some element in a range of elements ...
- javascript 封装分页
最近自己做了一个后台,想把分页通过js给封装起来 于是乎就有了下面的代码 此代码,算是一个半成品,还需完善,思路还是可以借鉴的 page方法传入3个参数 1.total总条数 2.page当前页码 3 ...
- OA项目之导入
内容显示页: protected void btnIMP_Click(object sender, EventArgs e) { Response.Redire ...
- MVC 路由模块内核原理
.net网站第一次运行的时候 执行global文件的application_start方法 注册路由信息 RouteConfig.RegisterRoutes(RouteTable.Routes) ...
- Daily Scrum 12.3
今日完成任务: 与安卓组进行商量对数据库修改的方案.现在在等他们最终确认,确认之后进行整理以及源代码的调试. 对资源功能的代码进行阅读. 遇到困难: 关于整合,爬虫组爬到的内容和网站定位有所不符,所以 ...
- PHP-redis中文文档-命令
关于redis of php的安装,详见自己的为知笔记,其中包含: 1.php版本的redis的安装 2.redis的使用方法 3.redis带conf文件的启动 这里介绍redis的命令,php版本 ...
- 【Maven】Eclipse 使用Maven创建Java Web项目
创建环境 系统:win 10 软件:eclipse,maven 创建步骤 需求创建一个Servlet版本是3.0,Java版本是1.7的项目Maven web项目 使用eclipse工具创建maven ...