OC-分类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
 

以上是关于OC-分类的主要内容,如果未能解决你的问题,请参考以下文章

oc59--匿名分类

31-oc分类和类扩展

OC对象给分类加入属性

[OC学习笔记]协议与分类

OC的类别(分类)和拓展

oc57--Category 分类