zoukankan      html  css  js  c++  java
  • 关于 iOS 分类(Category)的实现代码

    其实质是对一个类的扩充,对类扩充的方法有两种:

    (1)通过继承(经常用到)

    (2)通过分类

    一个已知类Name

    其头文件Name.h

    #import <Foundation/Foundation.h>

    @interface Name : NSObject

    @property(strong,nonatomic)NSString* nameStr;

    -(Name *)init:(NSString*)nameString;

    -(void)nameValue;

    @end

     
    其实现文件 Name.m
     

    #import "Name.h"

    @implementation Name

    -(Name *)init:(NSString*)nameString

    {

        Name * name = [Name new];

        name.nameStr = nameString;

        return name;

    }

    -(void)nameValue

    {

        NSLog(@"----%@--",self.nameStr);

    }

    @end

     

    再新建一个头文件Name+change.h用来声明其所要扩充的方法

    源码:

    #import "Name.h"

    @interface Name(change)

    -(void)addNameID:(NSString *)str;

    @end

     

    再新建一个实现文件Name+change.m用来实现自己扩充的方法

    #import <Foundation/Foundation.h>

    #import "Name+change.h"

    #import "Name.h"

    @implementation Name (change)

    -(void)addNameID:(NSString *)str

    {

        NSLog(@"---%@--%@--",self.nameStr,str);

    }

    @end

     

    其测试文件选择命令行

    main.m

    #import <Foundation/Foundation.h>

    #import "Name+change.h"

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

        @autoreleasepool {

            Name * name1 = [[Name alloc] init:@"wangfei"];

            

            [name1 nameValue];

            [name1 addNameID:@"898989"];

        }

        return 0;

    }

     

    其测试结果:

    2015-07-11 16:34:53.051 Category[1462:60100] ----wangfei--

    2015-07-11 16:34:53.053 Category[1462:60100] ---wangfei--898989--

    Program ended with exit code: 0

     

     

    代码改变世界
  • 相关阅读:
    cp文件夹
    当@PathVariable遇上中文和点
    frameset框架样式 加边框
    页面显示滑动条样式
    109.110.100.56 samba用户名 PAS, 密码 111111
    后台访问记录
    后台处理excel下载输出流
    ul li排版 左右对齐
    社保卡补办
    删除表 (truncate 、delete 、drop)
  • 原文地址:https://www.cnblogs.com/feiyafeiblog/p/4639299.html
Copyright © 2011-2022 走看看