Object-C 分类(Category) 和 扩展(Extension)
来源:互联网 发布:linux系统root密码 编辑:程序博客网 时间:2024/05/22 12:36
分类(Category)
分类作为一种编译的手段,允许通过类添加方法来扩展原有类。但只能是方法,不能够添加实例变量的扩展。常用文件名 类名+分类名.h(.m)
Pay attention here, 分类名不用和方法名一样,标示符而已。
举例说明,扩展NSNumber的类:
//NSNumber+Message.h#import <Foundation/Foundation.h>@interface NSNumber (Message)-(NSString *)errorMessage; //分类扩展方法@end
//NSNumber+Message.m#import "NSNumber+Message.h"@implementation NSNumber (Message)-(NSString *)errorMessage { NSString *errorStr = @""; switch ([self integerValue]) { case 0: errorStr = @"不会是我。"; break; case 1: errorStr = @"所以是我。"; break; default: break; } return errorStr;}@end
调用 errorMessage()
//main.m#import <UIKit/UIKit.h>//导入分类方法#import "NSNumber+Message.h"int main(int argc, char * argv[]) { NSNumber *hah = [NSNumber numberWithInt:1]; NSString *result = [hah errorMessage];//这样可以直接调用了,看似直接调用NSNumber类方法。 NSLog(@"%@", result);}
扩展(Extension)
.h 文件内存放的都是一些public型的变量以及方法,通过扩展可以扩充,但是扩充的变量或者方法写在 .m 文件里。
// Test.m/* 下面*str和setStr:方法是属于扩展内容,变量用大括号括起来,而它们都是Test类的家藏 */@interface Test() { NSString *str;}- (void)setStr:(NSString *)what;@end
0 0
- Object-C 分类(Category) 和 扩展(Extension)
- Objective-C分类 (category)和扩展(Extension)
- Objective-C分类 (category)和扩展(Extension)
- 【Objective-C】分类 (category)和扩展(Extension)
- Objective-C分类 (category)和扩展(Extension)
- Objective-C分类 (category)和扩展(Extension)
- Objective-C分类 (category)和扩展(Extension)
- Objective-C分类 (category),扩展(Extension)和协议(protocol)
- 【IOS开发技术】 Objective-C分类 (category)和扩展(Extension)
- 分类(category)和类扩展(extension)
- Object-C Category和Extension的区别
- Object-C Category和Extension的区别
- Objective-C 类别(category)和扩展(Extension)
- iOS 分类(category)、扩展(Extension)
- Objective-C中分类 (category)和扩展(Extension)以及继承(inherit)
- OC 分类(category) 和 类扩展(extension)
- bruceyou1990-iOS学习日记-分类(Category) 和 扩展(Extension)
- 分类(category)和类扩展(extension)的关系
- hdu1226超级密码【数字广搜+大数取模】
- TTL 电平 CMOS电平 RS232 电平
- 从getmemery()函数看内存管理、函数传参等一系列问题
- openstack ssh卡死expecting SSH2_MSG_KEX_DH_GEX_GROUP
- 获取手机联系人信息
- Object-C 分类(Category) 和 扩展(Extension)
- 小白学算法2.6——快速排序
- 我心中的mysql dba
- mysql 命令行登录详解
- SHELL重定向和管道的实现
- Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析
- 得到用户安装的app信息
- Android 应用存储位置
- 组成原理习题