关闭

OC之【@protocol协议】

标签: ios开发objective-c
685人阅读 评论(0) 收藏 举报
分类:

#import <Foundation/Foundation.h>


@protocol Study <NSObject>

// 默认就是@required

- (void)test3;


// @required表示必须实现的方法

// 虽然字面上说是必须实现,但是编译器并不强求某个类进行实现

@required

- (void)test;


- (void)test1;


// @optional表示可选(可实现\也可不实现)

@optional

- (void)test2;

@end



main.m文件

#import <Foundation/Foundation.h>

#import "Student.h"


@protocol Study;


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

{


    @autoreleasepool {

        Student *stu = [[[Student alloc] init] autorelease];

        

        // OC是弱语法的,对类型要求不严格

        // NSString *stu = [[[Student alloc] init] autorelease];

        // [stu stringByAbbreviatingWithTildeInPath];

        

        // conformsToProtocol:判断是否遵守了某个协议

        if ([stu conformsToProtocol:@protocol(Study)]) {

            NSLog(@"Student遵守了Study这个协议");

        }

        

        // respondsToSelector:判断是否实现了某个方法

        if ( ![stu respondsToSelector:@selector(test)] ) {

            NSLog(@"Student没有实现test这个方法");

        }

    }

    return 0;

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:617069次
    • 积分:9239
    • 等级:
    • 排名:第1984名
    • 原创:272篇
    • 转载:235篇
    • 译文:14篇
    • 评论:31条
    博客专栏
    最新评论