OC 中的关键词 大全

1. @interface和@implementation

分别在.h和.m文件开头处

@interface和@implementation都可以说是接口

oc中的类必须包括两部分,interface部分和implementation部分,这才是oc中的一个类的完整声明;然后OC中将成员变量和成员方法的声明部分放置在interface部分中,包括继承关系,protocal实现关系,都在interface里面的头部进行声明,然后将实现部分放置在implementation部分中,相当于是将类拆分成声明和实现两部分,这两部分缺一不可,所以在OC中,不妨不要将interface和implementation叫做接口,直接叫做类声明部分和实现部分来得容易理解多了,简而言之,oc中interface是类的一个部分,和implementation共同组成一个完整的类。

[email protected]@[email protected] 和@package

这三个关键词都是成员变量的可见度:

[email protected]: @public的级别是最低的,都可以用的对象->的方式找到成员变量,不安全

[email protected]:如果没有写可见度,默认是被保护的,被保护的成员变量可以在当前类及其子类被使用

[email protected] 私有的:只能当前的类可以使用,使用范围更小

[email protected] 这个是系统一些文件来使用,系统来用,如果以后看见了,直接跳过去就行了

[email protected] 属性 和@sythesize 属性的实现

(1)[email protected] 属性 :

在XCode4.5之后,属性一共可以做了三件事:

1.声明了设置器:setter和访问器:getter

2.实现了设置器和访问器

3.声明了一个成员变量,成员变量命名会在属性名前面加一个下划线

(2)[email protected]

在XCode4.5版本之前有这么一个关键词的定义

在.m文件中需要有一个关键词@sythesize才能实现setter和getter

[email protected] 结束语句

[email protected] 与 @ interface 一起使用 在.m和.h文件中

里面可以写:

(1).声明类的属性

(2).自定义初始化方法

(3).便利构造器等

[email protected] 与@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只能替换一个存储类的关键字

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-09 01:34:44

OC 中的关键词 大全的相关文章

OC 中的强引用(strong referene)和弱引用( weak reference)

关于oc中的强弱引用,有需要的朋友可以参考下. 强引用和弱引用的广义区别 强引用也就是通常所讲的引用,其存亡直接决定了所指对象的存亡.如果不存在指向一个对象的引用,并且此对象不再显示列表中,则此对象会被从内存中释放.弱引用除了不决定对象的存亡外,其他与强引用相同.即使一个对象被持有无数个若引用,只要没有强引用指向他,那么其还是会被清除 简单来说,strong等同retain(ARC之前),而weak和assign,weak比assign多了一个功能,当对象消失后自动把指针变成nil. __wea

关于OC中直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型

关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使用NSStringFromCGRect(CGRect rect)来直接打印一个结构体,其他打印可以参考以下内容 UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point); UIKIT_EXTERN NSString *NSStringFrom

【学习ios之路:Objective-C】OC中常用的系统排序方法

①.OC中常用排序方法: 1).不可变数组 - (NSArray *)sortedArrayUsingSelector:(SEL)comparator; - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr; 2)可变数组 - (void)sortUsingSelector:(SEL)comparator; - (void)sortUsingComparator:(NSComparator)cmptr; 3).字典排序 - (NS

关于void*类型的用法(相当于OC中的id类型)

关于void*类型的用法(相当于OC中的id类型) 1.C++语言在对于void* 类型的使用很特别,因为void* 可以间接引用任何其他数据类型的指针,比如int*.float*甚至抽象数据类型的指针,而且可以从void* 强制转换为任何其他数据类型的指针,所以使用起来有时候会比较危险.如果开始将一个void*的指针间接引用一个float*的指针,然后将这个void*指针强制转化为一个int*类型的指针,编译器不会给出错误甚至警告,但是输出的数据却匪夷所思,如果再强制转换会float*则不会出

智能指针 与 oc中的指针

智能指针 与 oc中的指针 智能指针的原理及实现 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝:另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享. 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count).智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针. 每次创建类的新对象时,初始化指针并将引用计数置为1:当对象作为另一对象的副

学会在自然写作中优化关键词

我们对网站进行优化的时候,网站页面内容的编写是非常重要的.那么初入SEO行业的站长是不是经常疑惑我们到底该怎么布局页面中的关键词呢? 我们编写页面内容的时候当然需要出现关键词,要考虑到两个概念:关键词出现的次数即(词频)和密度.最初的搜索引擎算法认为你文章中出现的关键词次数越多的话,你的网站页面和这个关键词的相关性也就越高,但现在的搜索引擎的算法已经复杂的多.即使我们调整好了关键词词频和密度,网站的页面价值却不一定高.所以一般来讲,网站的篇幅若是不大,出现两三次其实就够了.只要不堆砌关键词就行.

NS前缀\OC中的注释\访问OC原文件、C原文件中的函数

///////////////////////////////////////// //////////////////////////////////////// NS前缀 NS来自于NeXTStep的一个软件 NeXT Software OC中不支持命名空间(namespace) NS是为了避免命名冲突而给的前缀 看到NS前缀就知道是Cocoa中的系统类的名称 "@"的使用方法 1.@""这个符号表示将C中的字符串转化为OC中的字符串对象 2.@符号 OC中的大

OC中NSFileManager类 和 copy一些用法

一:NSFileManager的使用 1, 概念:用来管理文件系统,它可以用来进行常见的文件\文件夹的操作(拷贝.剪切.创建等) NSFileManager 使用了单例模式singleton 使用defaultManager方法可以获取那个单例对象 2, 1>常见判断 //1,判断文件或文件夹是否存放 // NSFileManager *fileManager = [NSFileManager defaultManager]; // NSString *path = @"/Users/ll

OC中类别、扩展、协议与委托

类别(category)--通过使用类别,我们可以动态地为现有的类添加新方法,而且可以将类定义模块化地分不到多个相关文件中.通常只在类别中定义方法. 类别,接口部分的定义,通常该文件命名为已有"类+类别名.h" @interface 已有类 (类别名) //.......方法实现 @end 例如,考虑为NSNumber增加一个类别,则接口部分代码如下 <p style="margin-top: 0px; margin-bottom: 0px; font-family: