zoukankan      html  css  js  c++  java
  • OC-分类

    1.不能再分类里面添加属性, 只能添加方法。
    2.如果在分类里面使用@property,那么他只生成sette,getter的声明而没有实现。
    3.如在在分类中写了与本类同名的方法,优先调用分类里面的方法
    4.在分类里面可以访问本类里面所定义的属性
     例子:目录
    主函数main.m

    #import <Foundation/Foundation.h>

    #import "NSString+CategoryNSString.h"

     

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

        @autoreleasepool {

            NSString *str=@"abc";

            NSLog(@"%@", [str Reverser]);

            NSLog(@"%d",[str leng].intValue);

        }

        return 0;

     
    }
     
     
    类目文件:NSString+CategoryNSString.h

    #import <Foundation/Foundation.h>

    @interface NSString (CategoryNSString)

    -(NSString *)Reverser;

    -(NSNumber *)leng;

     
    @end
     
    类目文件:NSString+CategoryNSString.m
     
     

    #import "NSString+CategoryNSString.h"

     

    @implementationNSString (CategoryNSString)

    /**

     *  字符串反转函数

     *

     *  @param string 传入的字符串

     *

     *  @return 逆序后的字符串

     */

    -(NSString *)Reverser{

        NSMutableString *str=[NSMutableString string];

        for (unsigned long i=(self.length); i>0; i--) {

            [str appendFormat:@"%c",[self characterAtIndex:i-1]];

        }

        return str;

    }

    /**

     *  把字符串长度int类型变成NSNumber类型

     *

     *  @param string 出入的字符串

     *

     *  @return NSNumber,字符串的长度

     */

    -(NSNumber *)leng{

        NSNumber *num=[[NSNumber alloc]initWithUnsignedLong:self.length];

        return num;

        

    }

     
    @end
     
  • 相关阅读:
    Netty之ProtoBuf(六)
    Netty对WebSocket的支持(五)
    Netty之心跳检测技术(四)
    Netty之多用户的聊天室(三)
    Docker Compose 笔记
    vue.js学习笔记
    powerdesigner 生成C#code 实体 模板设备
    .net 接收post 的参数 加载xml
    powerdesigner 生成实体代码 附加生成xml
    PostgreSql 获取所有的表、视图、字段、 主键
  • 原文地址:https://www.cnblogs.com/fume/p/5235652.html
Copyright © 2011-2022 走看看