• 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
     
  • 相关阅读:
    配置Gitlab pages和Gitlab CI
    程序员不应该错过的 6大导航
    Ice简介+Qt代码示例
    Android开发者的Anko使用指南(四)之Layouts
    三种方式绘制图片
    产品-(前后端)开发-测试的见解
    01_Docker概念简介、组件介绍、使用场景和命名空间
    Docker 创建 Confluence6.12.2 中文版
    读再多懂再多的鸡汤,不如每天敲码思考总结
    Postman Mock Server
  • 原文地址:https://www.cnblogs.com/fume/p/5235652.html
Copyright © 2020-2023  润新知