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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jing397 中级黑马   /  2015-10-11 13:31  /  829 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



    这里的协议是正式协议,相对的还有非正式协议,这在类别一节中有介绍。正式协议是一个命名的方法列表。它要求显式地采用协议。采用协议意味着要实现协议的所有方法。否则,编译器会通过生成警告来提醒你。
1.声明协议


                    
                 @protocol            NSCopying
                             -(id)            copyWithZone:(NSZone            *)zone;
                 @end
        


2.采用协议

                    
                          @interface Car :            NSObject
            {
                          // instance            variables
            }
               @end
        

     协议可以采用多个,并且可以按任意顺序列出这些协议,没有什么影响。
3.OC 2.0的新特性
         OC2.0增加了两个新的协议修饰符:@optional和@required,因此你可以像下面这样编写代码:


                    
                        @protocol            BaseballPlayer
            -(void)drawHugeSalary;
            @optional
            -(void)slideHome;
            -(void)catchBall;
            @required
            -(void)swingBat;
            @end
        


        因此,一个采用BaseballPlayer协议的类有两个要求实现的方法:-drawHugeSalary和-swingBat,还有3个不可选择实现的方法:slideHome,catchBall和throwBall。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马