iOS (catagroy)类别
1:可以为类添加新的方法,但不能添加实例变量。
2:第一,无法向类中添加新的实例变量。类别没有位置容纳实例变量。
第二,名称冲突,即类别中的方法与现有的方法重名。当发生名称冲突时,类别具有更高的优先级。你的类别方法将完全取代初始方法,从而无法再使用初始方法。有些编程人员在自己的类别方法名中增加一个前缀,以确保不发生名称冲突
#import <Foundation/Foundation.h>
@interface NSString (NumberConience)
-(NSNumber *)lengethNumber;
@end
#import "NSString+NumberConience.h"
@implementation NSString (NumberConience)
-(NSNumber *)lengethNumber
{
NSUInteger length=[self length];
return [NSNumber numberWithUnsignedInteger:length];
}
@end
NSMutableDictionary *dict=[NSMutableDictionary dictionary];
[dict setObject:[@"hello" lengethNumber] forKey:@"hello"];
[dict setObject:[@"I like Finsh" lengethNumber] forKey:@"fish"];
[dict setObject:[@"once upon a time" lengethNumber] forKey:@"time"];