协议 类目 延展
#pragma mark---协议----
*协议:正式协议 <协议名> 是一个公共接口文件,只要遵守这个协议就可以使用里面的协议方法 不用再去声明就可以让外部类使用《现在的ios越来越看重协议》
#pragma mark---类目----
*类目:非正式协议 (类目名) 对一个类(原有类-什么都没有) 方法的扩展
类目:category
1、命名规则:类名+类目的名称(要扩展的哪一个方向)
2、什么时候使用类目
①、团队开发同一个任务(同一个类),又想不互相影响->就可以使用类目
②、扩展系统类里面的方法->OC是不开源的不能修改原有类的.m文件增加方法实现->使用类目
3、调用的时候使用原有类去调用(类方法 - 原有类的类名调用)(对象方法 - 原有类的对象 调用)
4、创建一个类目-> command+N ->object-c file -> category -> 第一个输入内容:类目的名字 第二个输入的内容:要扩展的类
😱注:只允许添加方法 不允许添加变量
扩展:[UIImage imageNamed:@""];会把图片直接缓存到内存 占用运行时的内存(超过30M会崩溃)
imageNamed:添加图标
[UIImage imageWithContentsOfFile:图片路径];
封装一个图片的类方法
//尽量不要写跟原有类相同的方法名---会替换掉原来方法的功能---会优先调用类目的方法
+ (UIImage *)imageWithName:(NSString *)name{
NSString *path = [[NSBundle mainBundle]pathForResource:name ofType:nil];
return [UIImage imageWithContentsOfFile:path];
}
#pragma mark----延展---
*延展:给一个类,声明私有的方法和变量。在.m文件里面添加一个私有的接口文件(@interface类名() @end)
延展:Extension
延展->用来定义私有方法和变量的
公式:在.m文件中 添加
@interface 类名 ()
{
私有的变量名
}
私有的方法
@end
好处(目的):隐藏类内容的实现
@interface ViewController ()
@end
#pragma mark---UIPagecontrol->UIControl---
类目:
对一个类(原有类) 进行方法的扩展 -> 不能添加变量 只能添加方法 -> 原有类的对象名 调用添加的方法
如果想添加变量 -> 继承 -> 子类的对象名 调用添加的方法
使用环境:1、扩展系统类的方法
2、团队开发->扩展队友的类
目的:保证 不破坏 原有类
/*实现步骤:
*1、明确数组是一个有内容的对象->不需要传一个数组,数组本身有内容->可以直接使用数组本身
*2、确定使用对象方法
*3、需要遍历数组->返回一个字符串
*4、字符串的格式要与数组输出的格式对应
*/
//尽量不要写跟原有类相同的方法名---会替换掉原来方法的功能---会优先调用类目的方法
网友评论