OC中的@的作用研究

OC中的@字符用的频率很的高,其主要作用是为了差别于其它语言的keyword和语法

以下我们来研究一下其应用

1.声明类,协议,延展,权限,属性等

@interface声明类
@protocol声明协议
@requied声明变量的訪问权限
...

2.数组字典等OC专用类型

@"OC字符串"				相应的类型是NSString
@1 //OC的数字的对象形式     相应的类型是NSNumber
@(1)同上
@[@1,@2,obj] //OC的数组
@{@"key":value}//OC的字典

3.类型转换

OC的@能够把普通的数据类型转换为OC的对象类型

int a = 1;
char *s = "string";
 NSString *str = @(s);//把C语言的字符串转化为OC的字符串
 NSNumber *val = @1;//把整形转换为OC的对象类型
 NSNumber *val2 = @(1);

4.凝视的參数返回值说明

/**
 *  @param argc 參数1
 *  @param argv 參数2
 *  @return 返回值是状态值
 */

5.实现属性(已过时)

@synthesize property;

6.线程同步

  @synchronized(self)
 {
         self.doneCount++;
 }

很多其它OC文章:http://blog.csdn.net/yangbingbinga/article/category/2437601

时间: 05-31

OC中的@的作用研究的相关文章

好文转载--无线物联网中CoAP协议的研究与实现

无线物联网中CoAP协议的研究与实现 时间:2013-04-09?来源:电子科技 作者:汤春明,张 荧,吴宇平 关键字:CoAP???无线???物联网???协议?????? 摘要:由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用.IETF的CoRE工作组提出了一种基于REST架构的CoAP协议.CoAP是6LowPAN协议栈中的应用层协议.该文在详细介绍了CoAP协议的内容.特点和交互模型后,在uIPv6 S

智能指针 与 oc中的指针

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

linux系统中各个路由表的研究

linux中有0~255共256张路由表.其中0号表示unspec(未指定),253,254,255分别表示default.main.local表.除了以上4张表外的其他表都是留给用户指定的表.现在就说下以上5张系统表的作用. 首先是0号表unspec.这张表可以理解成所有路由表的总和,也就是说所有路由表中的路由条目在这个表中都会有一条相对应.这样如果想看看系统中所有路由表的路由条目就可以看这张表.当然对这张表中的路由条目操作也等同于对其他表中对应的路由条目操作,因此可要小心千万别清空这个路由表

关于OC中得内存管理问题,alloc,retain,release,copy,dealloc

我们都知道,一个手机,它的内存是有限的,而每一个手机应用都是需要一定空间,当应用所占空间过大时,系统就会发出警告,怎样在有限的空间中,做到更高效实用美观的效果呢? 这时候就牵涉到OC中得内存管理了. 在OC这门语言中,是不存在垃圾回收机制的,但是它采用了另外一种形式或者说方法,实现这一个空间回收的效果,那就是引用计数器. 别看-引用计数器,这个名字很高大上,实际是它就是一个整数. 所以OC中分配4个字节才存储它. 引用计数的值只有两种:0和非0,我们知道,计算机其实是很笨的,结果只有这两种时,它

OC中协议, 类目, 时间, 延展, 属性

必须接受marryprotocol协议, id<marryprotocol>基于类型的限定, 才能给实例变量赋值 @property (nonatomic, assign) id<marryprotocol> husband; 避免Optitonal没有实现的功能 if ([_husband respondsToSelector:@selector(driver)]) { [_husband driver]; } @required//必须实现的协议, 默认协议 - (void)s

iOS开发几年了,你清楚OC中的这些东西么1

前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1.2发布后就正式并且一直都使用了swift进行iOS的开发了, 之后就是对swift持续不断的学习, 近来swift3.0的发布, 更多的人会选择swift来进行iOS的开发看上去更是成为了一种趋势, 不过一个合格的iOS开发者对oc以及c语言的掌握是必不可少的技能, 本篇中主要是写一些大家平时都可能用到但是不一定知道的oc的东西 1.oc中的对象的

OC中属性及方法

1.声明式属性    a.实例变量    b.声明属性        自动生成setter/getter方法        .h ->@property 属性类型 属性名;        .m ->@synthesize 属性名 = 实例变量名;    c.点语法2.IOS5中的属性    a.实例变量  省        会自动生成实例变量,实例变量名 等于 _属性名    b.声明属性        @property 属性类型 属性名;        @synthesize 属性名 =

(知其所以然 主题2)从底层分析OC中ARC和非ARC下深复制和浅复制

今天,在坊间听到有人在争论OC中关于NSString的深浅复制,听了下,感觉很有必要来一个分析总结,让我们从底层去了解OC中深浅复制的运作机制. 所谓copy就是在原有对象的基础上产生一个副本对象,遵循最关键的两点原则: 1. 改变原对象的属性和行为不会对副本对象产生任何影响 2. 改变副本对象的属性和行为不会对原对象产生任何影响 在理解了这一层之后,我们一起来研究下deep copy 和 shallow copy,因为苹果是一个非常注重性能的公司,所以拷贝在底层实现没那么简单: 以NSStri

OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法

一:NSArray 和NSMutableArray 1: NSArray:不可变数组 NSArray是OC中使用的数组,只能用来存放OC对象,不能存放非OC对象如基本数据类型 它使不可变的,一旦初始化完毕,内容不能改变,也不能添加元素. 而C语言中的数组只能存放一种数据类型 (1) 普通数组的用法 // 普通数组的创建 // int arr[5] = {1,3,4}; // 对象数组的创建 // Person *p = [[Person alloc] init]; // Person *arrP