Protocol

 

output

 The fraction is: 3/10

 The complex number is: 5.000000 + 15.000000i

Fraction conforms to NSCopying

 protocol 的宣告十分简单,基本上就是 @protocol ProtocolName (methods you must implement) @end。

 要遵从(conform)某个 protocol,将要遵从的 protocols 放在 <> 里面,并以逗点分隔。如:@interface SomeClass <Protocol1, Protocol2, Protocol3>

 protocol 要求实作的 methods 不需要放在 header 档里面的 methods 列表中。如你所见,Complex.h 档案里没有 -(void) print 的宣告,却还是要实作它,因为它(Complex class)遵从了这个 protocol。

 Objective-C 的接口系统有一个独一无二的观念是如何指定一个型别。比起 C++ 或 Java 的指定方式,如:Printing *someVar = ( Printing * ) frac; 你可以使用 id 型别加上 protocol:id <Printing> var = frac;。这让你可以动

态地指定一个要求多个 protocol 的型别,却从头到尾只用了一个变数。如:<Printing, NSCopying> var = frac;

 就像使用@selector 来测试对象的继承关系,你可以使用 @protocol 来测试对象是否遵从接口。如果对象遵从这个接口,[object conformsToProtocol: @protocol( SomeProtocol )] 会回传一个 YES 型态的 BOOL 对象。同样地,对 class 而言也能如法炮制 [SomeClass conformsToProtocol: @protocol( SomeProtocol )]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值