2019-05-16

1、关于协议(protocol)
如果该协议只供一个类对象使用,可直接写在使用者类对象中
其他如果该协议可供多个(A)类对象使用,那就需要考虑把该协议提取出来放到一个单独的protocol.h文件中,在需要使用该协议的(A)父类(B)中遵守该协议实现,在其他子类(A)中可以选其重写协议方法。这样在其他类中(C)可直接通过A 调用协议方法

例:

import <Foundation/Foundation.h>

@protocol HelloProtocol <NSObject>

//默认就是required;
@required

  • (void)requiredMethod;

@optional

  • (void)optionalMethod;

新建Person类,在Person.h中引入协议,如下:

import <Foundation/Foundation.h>

import "HelloProtocol.h"

@interface Person : NSObject<HelloProtocol>

@end

Person.m如下:

import "Person.h"

@implementation Person

  • (void)requiredMethod{

    NSLog(@"requiredMethod——必须实现的方法");
    }

  • (void)optionalMethod{

    NSLog(@"optionalMethod——选择实现的方法");
    }

@end

之后在main.m中创建Person的对象去调用这些方法:

import <Foundation/Foundation.h>

import "Person.h"

int main(int argc, const char * argv[]) {
@autoreleasepool {

Person *jack = [[Person alloc] init];

[jack requiredMethod];
[jack optionalMethod];

}
return 0;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,159评论 1 32
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型...
    龍飝阅读 2,219评论 0 12
  • Oc基础 1、#import的用途 1>#import与#include一样,拷贝文件的内容 2>可以自动防止文件...
    开着保时捷堵你家门口阅读 925评论 0 0
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,397评论 0 3
  • 我是伊姿,这是我的每天一篇文章之第261天。 社群经济是这两年提的很高频的词,看得懂的人,已经赚到钱了,看不懂的人...
    伊姿Natasha阅读 535评论 1 5