zoukankan      html  css  js  c++  java
  • OC中的category&Extension

    学习链接:https://blog.csdn.net/cordova/article/details/54620397

      话不多说,这篇博客说的很清楚了,在这就放测试的demo

    category的demo  

    .h文件
    //
    //  NSString+Category.h
    //  learn_KVC
    //
    //  Created by 蔡佳明 on 2020/10/15.
    //
    
    #import <Foundation/Foundation.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface NSString (Category)
    {
        //不可以添加实例变量
    }
    // 也不会生成getter setter方法 所以property基本没意义
    
    //扩展一个类方法
    +(void)categoryClassMethodOfString;
    // 扩展一个实例方法
    -(void)categoryInstanceMethodOfString;
    @end
    
    NS_ASSUME_NONNULL_END
    
    
    .m文件
    //
    //  NSString+Category.m
    //  learn_KVC
    //
    //  Created by 蔡佳明 on 2020/10/15.
    //
    
    #import "NSString+Category.h"
    
    @implementation NSString (Category)
    //类方法可以实现 也可以不实现 但是不实现调用的话会导致程序崩溃
    +(void)categoryClassMethodOfString
    {
        NSLog(@"categoryClassMethodOfString!!");
    }
    
    -(void)categoryInstanceMethodOfString
    {
        NSLog(@"categoryInstanceMethodOfString!!");
    }
    @end
    
    测试文件
    //
    //  main.m
    //  learn_KVC
    //
    //  Created by 蔡佳明 on 2020/10/15.
    //
    
    #import <Foundation/Foundation.h>
    #import"NSString+Category.h"
    int main()
    {
        //调用类方法
        [NSString categoryClassMethodOfString];
        
        //调用实例方法
        NSString *string=[NSString new];
        [string categoryInstanceMethodOfString];
        return 0;
    }

     类扩展的demo

    #import"Person.h"
    
    @interface Person ()
    @property(nonatomic, copy)NSString *stringExtension;
    - (void)testExtension;
    @end
    
    
    @implementation Person
    - (void)testExtension {
       self.stringExtension = @"给扩展里面定义的属性字符串赋值";
       NSLog(@"定义的属性String是:%@", self.stringExtension);
    }
    @end
  • 相关阅读:
    浅谈C++ STL中的优先队列(priority_queue)
    哈夫曼树与哈夫曼编码
    Binary Search 的递归与迭代实现及STL中的搜索相关内容
    Prime 算法的简述
    估算网站需要多少宽带方法
    微服务服务拆分步骤
    第一次有人把科创板讲得这么简单明了
    一个人优秀到可怕的三个迹象!一旦具备,必为人中龙凤,大富大贵
    美元加息怎么“剪羊毛”
    英国脱欧的影响
  • 原文地址:https://www.cnblogs.com/caijiaming/p/13819542.html
Copyright © 2011-2022 走看看