黑马程序员技术交流社区

标题: 为什么无法加协议 [打印本页]

作者: 学以致用表初衷    时间: 2016-2-14 10:12
标题: 为什么无法加协议
http://bbs.itheima.com/forum.php?mod=attachment&aid=OTk0NTR8ZTI2OGJkNzQzM2M4YThmZTI1NDU0NmEyZWJjYWI5NWJ8MTczMjIyNDg2OQ%3D%3D&request=yes&_f=.zip

这里插入协议会报错。为什么呢???说没有定义这个协议的格式?

作者: 大爱五花肉    时间: 2016-2-14 10:12
不行呦,保姆类的声明中一定要加#import "lookBabyProtocol",不然编译器不知道协议是怎么写的;@property中加协议表示创建一个遵守协议的对象并声明实现set/get方法,和baomu类中遵守协议实现协议方法是不同的
作者: 大爱五花肉    时间: 2016-2-14 15:09
1、Baby类中是否#import "boom.h"
2、boom类中是否#import "lookBabyProtocol"并采纳了lookBabyProtocol
作者: 学以致用表初衷    时间: 2016-2-14 18:13
大爱五花肉 发表于 2016-2-14 15:09
1、Baby类中是否#import "boom.h"
2、boom类中是否#import "lookBabyProtocol"并采纳了lookBabyProtocol ...

恩 引用了baomu  
第二个问题 我再property里 加协议不行吗?
作者: 学以致用表初衷    时间: 2016-2-14 21:30
大爱五花肉 发表于 2016-2-14 21:28
不行呦,保姆类的声明中一定要加#import "lookBabyProtocol",不然编译器不知道协议是怎么写的;@property ...

我知道啊 我保姆中声明加了import 我说的是 interface baomu:NSOject <lookbabyprotocol> 这里的协议 可以不写嘛 然后再BABY的property baomu<lookbabyprotocol> *bm
作者: 大爱五花肉    时间: 2016-2-14 21:51
不可以,一个是采纳协议,一个是给类型加限制的
作者: 学以致用表初衷    时间: 2016-2-15 09:05
大爱五花肉 发表于 2016-2-14 21:51
不可以,一个是采纳协议,一个是给类型加限制的

那就是我在baomu.h里  baomu:NSObject <这里加上协议就好了呗>
就证明我在Baby中 声明的 baomu*bm 就有协议了把。?
作者: 大爱五花肉    时间: 2016-2-16 09:40
你这么多技术分一定不是刷分的对不对,协议的使用:1、写协议  2、采纳协议,采纳前要先导入协议头文件 3、实现协议方法  4、使用,可以使用协议限制对象的类型




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2