A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 学以致用表初衷 中级黑马   /  2016-2-14 10:12  /  4094 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3黑马币
http://bbs.itheima.com/forum.php?mod=attachment&aid=OTk0NTR8MjcwMTIwYWQ0Zjg1ZDJlOWNiOWRlZjc1MWNiMGZhMmJ8MTczNDg1MDQ4Nw%3D%3D&request=yes&_f=.zip

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

最佳答案

查看完整内容

不行呦,保姆类的声明中一定要加#import "lookBabyProtocol",不然编译器不知道协议是怎么写的;@property中加协议表示创建一个遵守协议的对象并声明实现set/get方法,和baomu类中遵守协议实现协议方法是不同的

7 个回复

倒序浏览
不行呦,保姆类的声明中一定要加#import "lookBabyProtocol",不然编译器不知道协议是怎么写的;@property中加协议表示创建一个遵守协议的对象并声明实现set/get方法,和baomu类中遵守协议实现协议方法是不同的
回复 使用道具 举报
1、Baby类中是否#import "boom.h"
2、boom类中是否#import "lookBabyProtocol"并采纳了lookBabyProtocol
回复 使用道具 举报
大爱五花肉 发表于 2016-2-14 15:09
1、Baby类中是否#import "boom.h"
2、boom类中是否#import "lookBabyProtocol"并采纳了lookBabyProtocol ...

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

我知道啊 我保姆中声明加了import 我说的是 interface baomu:NSOject <lookbabyprotocol> 这里的协议 可以不写嘛 然后再BABY的property baomu<lookbabyprotocol> *bm
回复 使用道具 举报
不可以,一个是采纳协议,一个是给类型加限制的
回复 使用道具 举报
大爱五花肉 发表于 2016-2-14 21:51
不可以,一个是采纳协议,一个是给类型加限制的

那就是我在baomu.h里  baomu:NSObject <这里加上协议就好了呗>
就证明我在Baby中 声明的 baomu*bm 就有协议了把。?
回复 使用道具 举报
你这么多技术分一定不是刷分的对不对,协议的使用:1、写协议  2、采纳协议,采纳前要先导入协议头文件 3、实现协议方法  4、使用,可以使用协议限制对象的类型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马