• 类目 延展


         类目:类目可以为一个现有的类扩展新的方法,扩展的方法会成为原始类的一部分

         声明一个类时,有实例变量和方法,而如果事后想增加方法的话直接在类里面添加感觉会显得杂乱无章,如果创建一个子类的话,层级多了会糊涂掉。至此,类目诞生。

        在类目的实现部分不能添加成员变量,类目没有位置容纳实例变量。

        类目中的实现方法可以使用类的属性(成员变量)。

        父类中类目,子类可以用关键字super进行调用。

        类目的方法名不能与类的方法名相同,若相同就会进行复写,类里面的方法就不在调用

          延展的作用就是定义自己的私有方法。

         延展就是C语言中的前向申明,如果你想调用一个函数的话,那么在此之前必须要声明一个这个函数

        

    //类目代码 

    #import <Foundation/Foundation.h>

    #import "NSString+Email.h"

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

        @autoreleasepool {

            // insert code here...

            NSLog(@"Hello, World!");

            

            NSString *email=@"1234567@qq.com";

            BOOL same=[email emiale];

            if (same==YES) {

                NSLog(@"正确");

            }else{

            

                NSLog(@"不正确");

            }

        }

        return 0;

    }

     

    #import <Foundation/Foundation.h>

     

    @interface NSString (Email)

     

    -(bool) emiale;

     

     

    @end

     

    #import "NSString+Email.h"

     

    @implementation NSString (Email)

    -(bool) emiale

    {

        NSRange range=[self rangeOfString:@"@"];

        if (range.location !=NSNotFound) {

            return YES;

        }

        return  NO;

    }

     

    @end

     

     

    //延展

    #import <Foundation/Foundation.h>

    #import "Person.h"

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

        @autoreleasepool {

            // insert code here...

            NSLog(@"Hello, World!");

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

            [person work];

        

        }

        return 0;

     

    }

    #import <Foundation/Foundation.h>

     

    @interface Person : NSObject

    -(void)work;

     

    @end

     

     

    #import "Person.h"

    //延展的定义

    //私有的

    @interfacePerson( )

    -(void)sleep;

    @end

    @implementation Person

    -(void)work{

        NSLog(@"工作");

        [self sleep];

    }

    //延展的实现

    -(void)sleep{

        NSLog(@"睡觉");

    }

     

    @end

     

     

  • 相关阅读:
    win32汇编-Windows钩子(七)
    win32汇编-动态链接库(六)
    win32汇编-内存管理 (五)
    win32汇编-GDI 图形 (三)
    win32汇编-定时器与取本地时间 (四)
    win32汇编-窗口 对话框 (三)
    win32汇编数据结构(二)
    win32汇编入门(一)
    win驱动开发笔记-结构化异常处理
    判定IE 使用 css
  • 原文地址:https://www.cnblogs.com/lcl15/p/4919898.html
Copyright © 2020-2023  润新知