iOS基础知识之类别

本类从三个方面介绍iOS中的类别,分别是  什么是类别;类别的语法;类别的作用。具体内容如下:

一、类别:

类的补丁:当不能获取现有类的源码,但需要对现有类的功能进行补充时,这种情况下使用类别。

类别只能添加方法,不能添加成员变量。

类别中不提倡使用@property,@property在类别中使用时,不能生成对应的私有变量,因为类别中不能声明成员变量。

例如:对NSString进行加密MD5,这种情况下不能获取NSString的源码,但需要为其添加加密功能,则可以使用类别实现。

二、类别语法

1 @interface class_name (category_name)
2
3 @end

例如:

1 @interface NSString (HelloWOrld)
2 - (void)helloWorld;
3 @end
4
5 @implementation NSString (HelloWOrld)
6 - (void)helloWorld {
7   NSLog(@"hello world....");
8 }
9 @end

表示通过类别为现有类NSString添加helloWorld方法。

1 NSString *str = @"zhang";
2 [str helloWorld];

iOS中实现类别的关键步骤如下:

1.选择Objective-C File,点击next.

2.在File中填写类别名称,在File Type中选择Category,在Class中选择需要进行扩展的现有类,最后点击next。

三、类别的作用
1.使用类别为一个类的“隐藏方法,即未在.h中声明的方法”添加声明。

2.分散一个大型的类,即当类中的方法过多时,可以将方法的声明和实现放到类别中实现,从而达到分散一个大型类的作用。

注意:类别方法的优先级比类本身方法的优先级要高,即类别和类本身中拥有相同的方法时,有限调用类别内的方法。

3.创建非正式协议,类似Java中的接口。

时间: 2024-10-25 10:52:35

iOS基础知识之类别的相关文章

iOS面试必备-iOS基础知识

近期为准备找工作面试,在网络上搜集了这些题,以备面试之用. 插一条广告:本人求职,2016级应届毕业生,有开发经验.可独立开发,低薪求职.QQ:895193543 1.简述OC中内存管理机制. 答:内存管理机制:使用引用计数管理,分为ARC和MRC,MRC需要程序员自己管理内存,ARC则不需要.但是并不是 所有对象在ARC环境下均不需要管理内存,子线程和循环引用并不是这样.与retain配对使用的是release,retain代表引用计 数+1,release代表引用计数-1,当引用计数减为0时

IOS基础知识学习

第一章MAC  OS X 1.Mac操作系统,俗称雪豹系统,开发IPhone开发首先要安装MAC系统. 2.objective-c是基于C语言的扩展 3.Mac App store应用商店是苹果公司的电子市场,程序员开发的程序必须上传到此商店上,供别人下载. 4.Appkit用于MAC界面开发,Uikit用于IPhone界面开发. 5.Application kit框架包含实现图形,事件驱动等 6.Xcode是用于开发MAC OS 和IOS应用程序的实用工具,要熟练运用它. 7.Xcode提供代

ios基础知识--05

1.UIView的tag属性 /* 1.所有直接或者间接继承UIVIew的控件都有一个tag属性 2.这个属性,只能用来保存一个数字,对控件的外观没有任何影响 3.但是我们可以通过这个属性的值,来判断是哪个控件 */ 2.transform属性 /* 1. 可以使用动画,叫做变换 2. CGAffineTransformIdentity 如果赋值,那么之前通过transform属性进行的修改都会复原:_imageButton.transform= CGAffineTransformIdentit

ios基础知识

1 1获取系统语言设置 2 3 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 4 5 NSArray *languages = [userDefault objectForKey:@"AppleLanguages"]; 6 7 NSString *preferredLang = [languages objectAtIndex:0]; 8 9 2 10 11 缓存路径下文件大小 12 13 14

iOS 基础知识

一.Objective-C语言特性有哪些? 1,c语言的超集,可以混编c和c++代码.(Objective-C++) 参考:http://blog.csdn.net/fengsh998/article/details/8010696 2,oc的方法调用为消息传递模型(用[]表示). 3,单继承.不支持内联.操作符重载.多继承. 4,Category.在不继承的基础上进行扩展,同时还可以对功能进行分组. 5,运行时机制.(method_setImplementation打补丁等等) 二.界面开发

iOS基础知识之属性及属性关键字

iOS属性及属性关键字 一.属性功能:1.给现有的成员变量生成一对setter/getter方法.2.如果没有声明成员变量,自动声明一个_属性名的私有变量(默认的成员变量是受保护的). 二.属性关键字:assign 默认(缺省)关键字,基本数据类型的赋值.MRC:手动管理内存retain 对象的属性声明,保存引用计数,如果别的对象使用当前对象,则该对象的计数器加1,即两个对象同时指向同一块内存.copy 对象的属性声明,直接拷贝对象为一个新的副本,而被拷贝的对象的计数器不会加1,即两个对象分别指

IOS基础知识要点

第二章 Objective编程的基础 1.Objective-c是面向对象的开发语言,最早基于Smaltalk这门语言. 2.OC的基本数据类型分为int型float型bool类型double类型等 3.sel选择器通过一个叫做selector的选择器实现的 SEL 变量名=@selector(方法名): SEL 变量名=NSSelectorFromString(方法名的字符串) NSString *变量名=NSStringFromSelector(SEL参数) 4.私有字符串常量在.m和.mm

ios基础知识--03

设备 屏幕类型 屏幕尺寸 点 分辨率(像素) iPhone 3GS 非Retina 3.5 inch 320*480 320x480 iPhone4\4S Retina 3.5 inch 320*480 640x960 iPhone5\5C\5S Retina 4 inch 320*568 640x1136 iPhone6 Retina 4.7 inch 375*667 750x1334 iPhone6 Plus Retina 5.5 inch 414*736 1242x2208 在retina

iOS基础知识汇总(一)

一.通知 1.监听通知 - (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject; 当anObject对象发布一条名字叫做aName的通知时,就会调用observer的aSelector方法 2.发布通知 // 发布一个通知对象(name.object.userInfo) - (void)postNotification:(NSNotification *