关于变量的作用域

@protected
 —Methods defined in the class and any subclasses can directly access the instance variables that follow.This is the default case.
该类和所有的子类中的方法可以直接访问这样的变量,这是默认的。
@private —Methods defined in the class can directly access the instance variables that follow, but subclasses cannot.
该类中的方法可以访问这样的变量,子类不可以。
@public —Methods defined in the class and any other classes or modules can di- rectly access the instance variables that follow.
除了自己和子类中的方法外,也可以被其他类或者其他模块中的方法所访问。开放性最大。
@package —For 64-bit images, the instance variable can be accessed anywhere within the image that implements the class.
对于64位图像,这样的成员变量可以在实现这个类的图像中随意访问。

全局变量(extern)
在程序的开始处,没有在一个方法里面写了
int gMoveNumber=0;
那么我们说这个变量就是全局变量,也就是说在这个模块中的任何位置可以访问这个变量。
这样的变量也是外部全局变量,在其他文件中也可以访问它。但是访问的时候要重新说明下这个变量,说明的方法是:
extern int gMoveNumber;
当然我们也可以在声明的时候加上extern关键字。
extern int gMoveNumber=0;
这样的话在其他的类中使用还是需要重新说明一下了,而且这时候编译器会给出警告。
如果这个全局变量只是在自己的类中使用,或者其他的类使用的它情况也比较小,那么我们把它定义成第一种情况,如果在外部文件使用的也比较多的话,那么我们把它定义成第二种情况。
这种定义其实违背了封装性。

静态变量(static)
因为全局变量是全局的,影响封装,所以有时候要用静态变量。
static int gMoveNumber;
这是这个变量是这个类中的静态变量。如果不定义初始值的话为零。

如果静态变量定义在方法中,那么这个变量在方法执行完之后还是有效的,如果在第一次调用的时候改变了这个变量的值,那么在第二次调用的时候,这个变量的值是被改变过的值。

如果被定义在类中,那么这种改变也是有效的,就是作用域发生了改变。一个在方法中,一个在类中。

atomic和nonatomic
nonatomic是告诉系统不要使用mutex(互斥)锁定。这种锁定会导致系统的性能低下,所以一般在多线程的时候使用atomic,平时多数用nonatomic。

@synthesize和@dynamic
@synthesize will generate getter and setter methods for your property.
@dynamic just tells the compiler that the getter and setter methods are implemented not by the class itself but somewhere else (like the superclass)

Uses for @dynamic are e.g. with subclasses of NSManagedObject (CoreData) or when you want to create an outlet for a property defined by a superclass that was not defined as an outlet:

转载于:https://www.cnblogs.com/pengyingh/articles/2353532.html

Objective C中@protected等关键字概述相关推荐

  1. C++:C++中public protected private关键字用法

    C++:C++中public protected private关键字用法 笔者这里主要针对C++中public protected private关键字做一个较全面的总结.首先public prot ...

  2. 什么是java的关键字_java中常见的关键字

    什么是关键字呢? 概述:关键字就是在java语言中赋予特殊含义的单词 特点:1.组成的关键字的单词全是小写 2.常见的代码编辑器中,对关键字都有特殊的颜色标记 比如在idea中对关键字都有特殊的颜色标 ...

  3. 了解 C# “.NET研究”4 中的 Dynamic 关键字

    dynamic 关键字和动态语言运行时 (DLR) 是 C# 4 和 Microsoft .NET Framework 4 中的重大新增功能. 这些功能在宣布时就引起了人们的极大兴趣,并伴随着许多疑问 ...

  4. 面试季,Java中的static关键字解析

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面 ...

  5. C++中的static关键字的总结

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 1.面向过程设计中的st ...

  6. python中关键字参数含义_python中接受任意关键字的参数

    1.*args args是非关键字参数,可以理解为形参,为了方便记忆我理解它是arguments的缩写. 2.*kwargs kwargs是键值对参数,为了方便记忆我理解它是key word argu ...

  7. Java中的static关键字解析 转载

    原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到 ...

  8. C 中的static关键字

    C++中的static关键字 分类: 面试珠玑 2012-04-22 22:06 22416人阅读 评论(25) 收藏 举报 c++存储c C++的static有两种用法:面向过程程序设计中的stat ...

  9. [转] Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

最新文章

  1. 星巴克不使用两阶段提交
  2. 添加打印机还显示脱机_win7系统电脑连接打印机后显示脱机怎么办
  3. 2013-10-31 《三天里什么都没干……总之把目前为止的代码发了吧……》
  4. F1 score,micro F1score,macro F1score 的定义
  5. ARM再出手,软银攀登新高山
  6. Scala 入门1(变量、分支循环、函数)
  7. 空值用前值填充_Excel数据填充,原来这么简单
  8. 洛谷P2234 [HNOI2002]营业额统计 set简易解法
  9. 【小安翻唱】檄!帝国华撃団
  10. Tips for ASP.NET Application Performance Enhancement
  11. Tomcat 弱密码爆破 漏洞复现
  12. 《百词斩背单词》四级词汇(3486个)-1
  13. win7/win10系统防火墙禁止单个应用联网步骤
  14. cad断点快捷键_CAD命令:打断(BREAK)命令的使用技巧
  15. 高效实现斐波那契数列(Fibonacci数列)
  16. python从入门到实践16章答案
  17. C:\inetpub\logs\LogFiles\W3SVC1
  18. CAD转PDF如何修改背景颜色
  19. 《Linux命令速查手册》笔记
  20. uefi下的开机顺序_科普贴:BIOS和UEFI的启动项

热门文章

  1. visio交换机图标_分享 | 华为交换机开局配置一本通,弱电新人学习!
  2. autocad软件提供的哪些功能可以提高设计效率?_节省80%制图时间:AutoCAD如何有效“手脑”结合,释放创作潜能?...
  3. rhel5.8安装oracle10g,RHEL 5.8 安装Oracle 10g r2 clusterware 报错
  4. 语言里怎么防误输_育儿知识|我们的孩子为什么会怕输?
  5. brew 安装java8_mac使用brew安装Java8
  6. 最短路径(迪杰斯特拉算法)
  7. Tomcat监控xml ,当修改xml后,不用重启tomcat
  8. 以前的某个程序安装计算机上创建挂起_教研拓进王立辉老师计算机专业教学心得...
  9. 关于JSON CSRF的一些思考
  10. Shiro学习记录(详细)