ios-5-类别和协议

类别:扩展已存在类的内置功能(无需继承便可扩展类的功能)

类别可以扩展类之前不存在的一个属性,不能像继承那样给类别接口添加实例变量,而是要扩展一个类的行为

除了对现有类增加新的行为之外,类别还支持对自己构建的类把相关方法分组到多个单独文件中

在m文件中用匿名类别可以实现方法或属性的私有化

在import之后添加:

interface 类名(){

私有化属性

}

协议:协议定义了一个类与另一个类沟通的先验方式,它们包含一个方法列表,有的是可选的,有的是必须的。协议中定义的方法包括一些操作响应和事件响应。委托和数据源都是由协议产生的。

协议类似Java中的接口,定义了一组方法,遵循协议的类都认为同意满足这一组方法列表

协议可以用来定义回调方法(IOS委托和数据源都是用协议来实现的,UITableViewDelegate、UITableViewDatasource)

协议分为可选实现方法和必须实现方法,用关键字 @required 和 @optional区分

判断一个类是否实现了协议的可选方法:

[java] view plaincopyprint?

  1. if([self.client respondsToSelector : @selector(doSomething)])
  2. {
  3. [self.client doSomething];
  4. }

ios-5-类别和协议

时间: 2024-10-10 22:08:08

ios-5-类别和协议的相关文章

关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol

关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 2014-02-18 19:57 315人阅读 评论(0) 收藏 举报 1.category,覆盖原类的方法,即使不引用该category头文件,也能覆盖,respondsToSelector:方法也能响应.2.category,不可以有私有变量,但是可以有@property的声明,property的声明只是声明了该类的set,get方法(需要引用该category的头文件),但是categ

iOS开发者程序许可协议

请仔细阅读下面的许可协议条款和条件之前下载或使用苹果软件.   这些条款和条件构成你和苹果之间的法律协议. 目的 你想使用苹果软件(如下定义)来开发一个或多个应用程序(如下定义)Apple-branded产品运行iOS. 苹果愿意授予您有限的许可使用苹果软件开发和测试您的应用程序在本协议规定的条款和条件. 开发的应用程序在此协议下可以分布在四个方面:(1)通过应用程序商店,如果选择苹果,(2)通过VPP / B2B项目网站,如果选择苹果,(3)在一个有限的基础上使用注册设备(如下定义),和(4)

ios category类别的使用

ios category类别的使用 Objective-C提供了一个非常灵活的类(Class)扩展机制-类别(Category).类别用于对一个已经存在的类添加方法(Methods).你只需要知道这个类的公开接口,不需要知道类的源代码.需要注意的是,类别不能为已存在的类添加实例变量(Instance Variables). 类别的基本语法如下: @interface ClassName(CategoryName)//method declarations@end@interface 类名(类别名

深入浅出--iOS的TCP/IP协议族剖析&&Socket

深入浅出--iOS的TCP/IP协议族剖析&&Socket 简介 该篇文章主要回顾--TCP/IP协议族中的TCP/UDP.HTTP:还有Socket.(--该文很干,酝酿了许久!你能耐心看完吗?) 我在这个文章中,列举了常见的TCP/IP族中的协议,今天主角是--传输层协议. 传输层(Transport Layer)是OSI(七层模型)中最重要.最关键的一层,它负责总体的数据传输和数据控制的一层,传输层提供端到端(应用会在网卡注册一个端口号)的交换数据的机制,检查分组编号与次序.传输层对

iOS ASIHTTPRequest用https协议加密请求

iOS 终端请求服务端数据时,为了保证数据安全,我们一般会使用https协议加密,而对于iOS的网络编程,我们一般会使用开源框架:ASIHTTPRequest,但是如果使用传统的http方式,即使忽略验证的话,程序也会报[error-9844]的错误,具体错误如下描述: [Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0x6aafa30 {NSUnderlyi

IOS开发之——Protocol协议的使用

protocol ['pr?ut?k?l] (例子:http://blog.sina.com.cn/s/blog_6aafe9c90100yozz.html ) 一.说明 两个类进行通讯,用协议就比较方便. 1.协议声明了可以被任何类实现的方法 2.协议不是类,它是定义了一个其他对象可以实现的接口 3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议. 4.协议经常用来实现委托对象.一个委托对象是一种用来协同或者代表其他对象的特殊对象. 5:委托,就是调用自己定义方法,别的类来实

IOS 采用https 协议访问接口

申请好证书后,发现ios 仍无法使用https协议访问到数据,发现ios 需要ssl 支持 TLS1.2 . 更改nginx 配置: ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA

《Effective Objective-C 2.0》—(第23-28条)—类别、协议,代理,匿名对象、delegate

第23条:通过委托与数据源协议进行对象间通信 对象之间经常需要相互通信,而通信方式有很多.OC开发者广泛使用一种名叫"委托模式"(Delegate Pattern)的编程设计模式来实现对象间的通信,该模式的主旨是:定义一套接口,某对象若想接收另一个对象的委托,则需遵从此接口,以便称为"委托对象"(delegate).而这"另一个对象"则可以给其委托对象回传一些信息,也可以在发生相关联时间时通知委托对象. 此模式可以将数据与业务逻辑解耦. 在Obj

黑马程序员 委托模式--类别、协议、Block篇

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>. <a href="http://www.itheima.com"target="blank">.Net培训</a>.期待与您交流! ----------------------- 委托模式--类别.协

【IOS 开发】Object - C 面向对象高级特性 - 包装类 | 类处理 | 类别 | 扩展 | 协议 | 委托 | 异常处理 | 反射

一. Object-C 对象简单处理 1. 包装类 (1) 包装类简介 NSValue 和 NSNumber : -- 通用包装类 NSValue : NSValue 包装单个 short, int, long, float, char, id, 指针 等数据; -- NSNumber 包装类 : 用于包装 C 语言数据类型; NSNumber 方法 : -- "+ numberWithXxx :" : 将特定类型的值包装成 NSNumber; -- "- initWithX