[Objective-C] basic concepts and usage of protocols in OC

Source: Internet
Author: User

Basic concepts of Protocol

The Declaration of the Protocol looks similar to the interface of a class in Java, but unlike the interface, the Protocol does not have a parent class and cannot define instance variables.

A protocol is a special program design structure used to declare methods implemented by other classes. Protocols are useful in the following scenarios:

 

  • Methods that need to be implemented by other classes
  • Declare an unknown class Interface
  • Communication between two classes

    Basic Features of the Protocol

     

    • Methods that can be implemented by any class
    • The Protocol itself is not a class. It defines an interface that can be implemented by other classes.
    • Protocol can also be used for the category (not used much)

      Keyword in the Protocol

       

      • @ Required: indicates the method that must be implemented forcibly.
      • @ Optional: indicates a selective implementation method.

        Example:

        Agreement statement:

         

        // Protocol declaration # import
               
                
        @ Protocol OneProtocol
                
                 
        // Optional implementation method: @ optional-(void) optionalMethod1;-(void) optionalMethod2; // required implementation method: @ required-(void) requiredMethod1; @ end // use the Protocol (Test. h) # import "OneProtocol. h "@ interface Test: NSObject
                 
                
               

         

         

        Protocol implementation method:

         

        # Import "Test. h "@ implementation Test-(void) optionalMethod1 {// optional implementation method 1}-(void) optionalMethod2 {// optional implementation method 2}-(void) requiredMethod1 {// required implementation method 2} @ end
        Main. m method:

         

         

         Test *test=[[Test alloc]init];        [test optionalMethod1];        [test optionalMethod2];        [test requiredMethod1];        [test autorelease];

         

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.