OC 中的关键词 大全(1)
来源:互联网 发布:特种设备考试软件 编辑:程序博客网 时间:2024/04/28 22:01
1. @interface和@implementation
分别在.h和.m文件开头处
@interface和@implementation都可以说是接口
oc中的类必须包括两部分,interface部分和implementation部分,这才是oc中的一个类的完整声明;然后OC中将成员变量和成员方法的声明部分放置在interface部分中,包括继承关系,protocal实现关系,都在interface里面的头部进行声明,然后将实现部分放置在implementation部分中,相当于是将类拆分成声明和实现两部分,这两部分缺一不可,所以在OC中,不妨不要将interface和implementation叫做接口,直接叫做类声明部分和实现部分来得容易理解多了,简而言之,oc中interface是类的一个部分,和implementation共同组成一个完整的类。
2.@public.@protected.@private 和@package
这三个关键词都是成员变量的可见度:
1.@public: @public的级别是最低的,都可以用的对象->的方式找到成员变量,不安全
2.@protected:如果没有写可见度,默认是被保护的,被保护的成员变量可以在当前类及其子类被使用
3.@private 私有的:只能当前的类可以使用,使用范围更小
4.@package 这个是系统一些文件来使用,系统来用,如果以后看见了,直接跳过去就行了
3.@property 属性 和@sythesize 属性的实现
(1).@property 属性 :
在XCode4.5之后,属性一共可以做了三件事:
1.声明了设置器:setter和访问器:getter
2.实现了设置器和访问器
3.声明了一个成员变量,成员变量命名会在属性名前面加一个下划线
(2).@sythesize
在XCode4.5版本之前有这么一个关键词的定义
在.m文件中需要有一个关键词@sythesize才能实现setter和getter
4.@end 结束语句
1.@end 与 @ interface 一起使用 在.m和.h文件中
里面可以写:
(1).声明类的属性
(2).自定义初始化方法
(3).便利构造器等
2.@end 与@implementation 一起使用 在.m文件中
里面可以写:
(1).实现类的方法
(2).自定义初始化方法
(3).便利构造器等
5.1. #define 宏定义
例子:
#define HEIGHT self.view.frame.size.height
其中 HEIGHT 是定义的新的名字. self.view.frame.size.height是程序中要用的名字,在头文件的下面用#define定义就可以实现 HEIGHT 和self.view.frame.size.height 完全相等,也就可以在下面的程序中直接使用
注意:define后面的新名字需要大写
5.2. typedef常用来定义一个标识符及关键字的别名
例子:
typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;
和宏定义类似,typedef 也可以定义新的名字,只不过后面的INT . ARRAY[10] 和 pINT 是新名字,前面的是原来的名字
#define和typedef 的区别
#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字、冗长的类型的别名。
宏定义只是简单的字符串代换(原地扩展),而typedef则不是原地扩展,它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变量的功能。
例子:
typedef (int*) pINT; #define pINT2 int*
实践中见差别:pINT a,b;的效果同int *a; int *b;表示定义了两个整型指针变量。而pINT2 a,b;的效果同int *a, b;
表示定义了一个整型指针变量a和整型变量b。
注意:
1.typedef与const 一起用的时候不是简单的字符串替换
例子:
typedef char* PSTR; 然后: int mystrcmp(const PSTR, const PSTR);
const PSTR实际上相当于const char*吗?不是的,它实际上相当于char* const。 原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。 简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。
2.typedef在语法上是一个存储类的关键字(如auto、extern、mutable、static、register等一样),虽然它并不真正影响对象的存储特性,如:
typedef static int INT2; //不可行
编译将失败,会提示“指定了一个以上的存储类”。
所以说 , typedef只能替换一个存储类的关键字
6.@protocol 协议的关键词
位置:在头文件下:
声明一份协议:
原代码:
@protocol Marry <NSObject>-(void)takeBaby;-(void)cook;@end
-(void)takeBaby;-(void)cook;是协议中的方法.
7.@required和@optional
这两个关键词是协议里的两个方法:
(1).@required 是必须实现的方法,默认是必须实现的方法
(2).@optional 时可选择执行的方法
例子:
@protocol Marry <NSObject>@required-(void)takeBaby;@optional-(void)cook;@end
- OC 中的关键词 大全(1)
- java关键词大全
- SQL注入关键词大全
- Java修饰符关键词大全
- Java修饰符关键词大全
- Java修饰符关键词大全
- OC OC中的@property
- ActionScript中的关键词
- 汇编中的关键词
- ActionScript中的关键词
- Java 中的 Synchronized关键词
- matlab 中的关键词
- JS中的关键词
- JAVA中的关键词
- OC 入门语法大全
- oc 键盘大全
- oc 键盘大全
- OC异常处理大全
- TCP/IP,Http,Socket,XMPP的区别
- Java基础--基本类型
- 多线程二(Runnable接口)
- 排序
- UIViewController的presentedViewController,presentingViewController和parentViewController三个属性
- OC 中的关键词 大全(1)
- bzoj-1042 硬币购物
- codevs contest #1 3944 幻影阁的难题 树形DP+二分
- Google推荐的图片加载库Glide介绍
- Android自动化测试工具汇总
- rownum进行分页查询
- uva 11374 Airport Express(最短路)
- nandflash读写是以page为单位的测试
- activity小结——知晓当前是在哪一个活动