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
  • 相关阅读:
    部署openstack的官网文档解读mysql的配置文件
    ubuntu14.04行更新软件包
    Ubuntu14.04上修改主机名
    ubuntu上修改root密码
    在ISE查看各个模块消耗的资源
    132
    Aurora 8B/10B、PCIe 2.0、SRIO 2.0三种协议比较
    NAND flash和NOR flash的区别详解
    FPGA三分频,五分频,奇数分频
    以太网之物理层
  • 原文地址:https://www.cnblogs.com/caijiaming/p/13819542.html
Copyright © 2011-2022 走看看