zoukankan      html  css  js  c++  java
  • 协议

    #import <Foundation/Foundation.h>                        协议是一个类通过协议调用另一个类的方法  就调用的方式而言相当于用属性保存另一个类的对象 

    #import "One.h"                   只是协议通过是否实现了该协议里的方法来用一个指针指向一个对象  而属于则是直接赋值;       #import "Two.h"                                                  具体说就是一个类有一个类拥有一个会检测是否实现协议的指针 另一个类表明实现该协议

    int main(int argc, const char * argv[])                       表明时别的类是看不到的 只有拥有该协议的类才能知道 所以别的类是不能直接调用的

    {                           属性是调用set 和get 方法    两种方法都能在两个类之间进行转递信息    

     

        @autoreleasepool {

            

            // insert code here...

            NSLog(@"Hello, World!");

            One *one = [[One alloc]init];

            Two *two=[[Two alloc] init];

            one.li = two;    //设置代理

            [one print];        

        }

        return 0;

    }

     

    #import <Foundation/Foundation.h>

    @classOne;

    @protocol Xie <NSObject>   //One中声明一个协议 在另外的类中实现

    - (void)run:(One *)one;   //要实现的方法

    @end

    @interface One : NSObject

    @property (nonatomic ,weak) id <Xie> li;  //用来判断是否实现了协议

    - (void)print;

     

    @end

    - (void)print

    {

        

        if (_li && [_li respondsToSelector:@selector(run:)])

    //        判断是否实现了协议里的方法

        {

            [_li run:self];

        }

    }

    #import <Foundation/Foundation.h>

    #import "One.h"

    @interface Two : NSObject  <Xie> //表明实现了该协议

     

    @end

  • 相关阅读:
    获取SQLSERVER所有库 所有表 所有列 所有字段信息
    无法嵌入互操作类型,请改用适用的接口 的解决方法
    注册Com组件..
    IIS站点无法访问..点浏览IIS窗口直接关掉
    数据库日志文件的收缩
    由于目标机器积极拒绝,无法连接。
    Log4Net使用方法
    WindowsService 创建.安装.部署
    蓝桥杯题库基础练习字母图形
    修改IDEA默认模板
  • 原文地址:https://www.cnblogs.com/studyios/p/3581385.html
Copyright © 2011-2022 走看看