自学iOS开发系列----OC(类别和扩展)
来源:互联网 发布:双代号网络计划规则 编辑:程序博客网 时间:2024/06/09 21:03
类别(Category)
1.类别的作用:为已知的类型增加新的方法
2.类别的局限性
①不能添加实例变量;
②方法名冲突,类别中方法的优先级会更高
3.类别的应用场景:将类的实现分散到不同的文件或框架中
4.创建Category文件
①command+N
②Objective-C File
③添加类型和类别名称
File: Printf
File Type: Category
Class: NSString
5.新建类别,在一个字符串后面追加一个字符串,返回一个新的字符串
新建NSString+Print类别
①NSString+Print.h
#import <Foundation/Foundation.h>@interface NSString (Printf)- (NSString *)appendStringByStrLast:(NSString *)strLast;@end
②NSString+Printf.m
#import "NSString+Printf.h"@implementation NSString (Printf)- (NSString *)appendStringByStrLast:(NSString *)strLast { //字符串追加 NSString * ret = [NSString stringWithFormat:@"%@%@",self,strLast]; return ret;}@end
③main.m
#import <Foundation/Foundation.h>#import "NSString+Printf.h"int main(int argc, const char * argv[]) { @autoreleasepool { NSString * str = @"春风十里,"; NSString * strNew = [str appendStringByStrLast:@"不如你"]; NSLog(@"%@",strNew); } return 0;}
扩展(Extension)
1.扩展和类别的区别:扩展既可以为类型增加实例变量,也可以增加方法
2.扩展的作用:将扩展的内容(实例变量,方法)变为私有
3.创建Extension文件
①command+N
②Objective-C File
③添加类型和扩展名
File: PrivateMethod
File Type: Extension
Class: Student
4.创建一个学生类,为学生类添加扩展类
新建Student类
①Student.h
#import <Foundation/Foundation.h>@interface Student : NSObject- (void)sayStudentName;@end
②Student_PrivateMethod.h
#import "Student.h"@interface Student () { int _age;}- (void)studentName;@end
③Student.m
#import "Student.h"#import "Student_PrivateMethod.h"@implementation Student- (void)sayStudentName { //扩张变量和方法只能在自己的.m里调用 [self studentName];}- (void)studentName { _age = 28; NSLog(@"我叫赵丽颖");}@end
④main.m
#import <Foundation/Foundation.h>#import "Student.h"int main(int argc, const char * argv[]) { @autoreleasepool { Student * student = [[Student alloc] init]; [student sayStudentName]; } return 0;}
0 0
- 自学iOS开发系列----OC(类别和扩展)
- 自学iOS开发系列----OC(协议和委托代理)
- 自学iOS开发系列----OC(数组)
- 自学iOS开发系列----OC(继承)
- 自学iOS开发系列----OC(block)
- 自学iOS开发系列----OC(JSON解析)
- 自学iOS开发系列----OC(内存管理)
- ios 类别和扩展
- ios 类别和扩展
- ios 类别和扩展
- 【iOS沉思录】OC中的类扩展机制:Category类别和Extension类扩展
- iOS类别和类扩展
- ios 类别和类扩展
- 自学iOS开发系列----OC(属性、点语法、修饰符)
- 自学iOS开发系列----OC(文件管理类、文件句柄类)
- OC-类别与扩展
- iOS 类别和扩展(Categories和Extensions)
- iOS 类别和扩展(Categories和Extensions)
- MVC
- Android时区和时间同步
- python tkinter label编写案例分析
- mtklog结构及分析
- 基于Linux的SOCKET编程之TCP半双工Client-Server聊天程序
- 自学iOS开发系列----OC(类别和扩展)
- JDBC概述
- WINDOWS HOST文件修改后不生效的处理方法
- javascript 实现MD5加密
- Linux节点理解
- 算法作业
- 阿里云Ubuntu安装resin
- Android应用基础技巧
- Java基础05 - 面向对象2(成员变量与局部变量)