ios属性或者变量的前缀-杂记

static 关键字的作用:

(1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,

因此其值在下次调用时仍维持上次的值;

(2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

(3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明

它的模块内;

(4)在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;

(5)在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量。

线程与进程的区别和联系?

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。

程和线程的主要差别在于它们是不同的操作系统资源管理方式。 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程 之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于 一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

类工厂方法是什么

类工厂方法的实现是为了向客户提供方便,它们将分配和初始化合在一个步骤中,返回被创建的对象,并

进行自动释放处理。这些方法的形式是+ (type)className...(其中 className不包括任何前缀)。

工厂方法可能不仅仅为了方便使用。它们不但可以将分配和初始化合在一起,还可以为初始化过程提供对

象的分配信息。

类工厂方法的另一个目的是使类(比如NSWorkspace)提供单件实例。虽然init...方法可以确认一

个类在每次程序运行过程只存在一个实例,但它需要首先分配一个“生的”实例,然后还必须释放该实例。

工厂方法则可以避免为可能没有用的对象盲目分配内存。

readwritereadonlyassignretaincopynonatomic属性的作用

@property是一个属性访问声明,扩号内支持以下几个属性:

1,getter=getterName,setter=setterName,设置setter与getter的方法名

2,readwrite,readonly,设置可供访问级别

2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题

3,retain,setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序(CC上有相关资料)

4,copy,setter方法进行Copy操作,与retain处理流程一样,先旧值release,再Copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。

copy是在你不希望a和b共享一块内存时会使用到。a和b各自有自己的内存。

5,nonatomic,非原子性访问,不加同步,多线程并发访问会提高性能。注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问。锁被加到所属对象实例级(我是这么理解的...)。

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下,原子操作是必要的,否则有可能引起错 误的结果。加了atomic,setter函数会变成下面这样:

原文地址:https://www.cnblogs.com/linusflow/p/8541728.html

时间: 2024-11-06 09:36:46

ios属性或者变量的前缀-杂记的相关文章

IOS 杂笔-19(属性与变量的优缺点)

IOS 杂笔-19(属性与变量的优缺点) 在前面的文章中我介绍了属性与变量的区别.这篇博客我将会简单介绍一下属性与变量的优缺点. 变量 优点: 访问速度快 缺点: 使用不灵活 属性 缺点: 耗时 优点: 防止对象被提前创建 防止对象重复创建 防止对象使用时,还没被创建 可以在懒加载方法里面,进行初始化操作

iOS常量、变量、属性及其特性

1.Objective-C中声明常量使用关键字const.如:const double PI = 3.1514; 2.Objective-C中变量可以分为成员变量.局部变量和全局变量(用的很少,尽量不要用). //————————------------常量—————————————————// 方法一: #define kDetailKey            @“detail text” #define DOWNLOAD_TIMEOUT      60.0 #define degresss

iOS: 属性列表介绍 Introduction to Property Lists

iOS: 属性列表介绍 Introduction to Property Lists 从本质上说, 属性列表就是苹果的对象数据序列化与反序列化方式 属性列表使用几种数据类型把数据组织为键值表和值表 Property lists organize data into named values and lists of values using several object types. 这些类型使你能产生结构良好,便于传输,存储,和访问并且有效的数据.These types give you th

IOS OC声明变量在@interface括号中与使用@property的区别

方式一:直接在@interface中的大括号中声明. @interface MyTest : NSObject{ NSString *mystr; } 方式二:在@interface中声明,然后再在@property中声明. @interface MyTest : NSObject{ NSString *_mystr; } @property (strong, nonatomic) NSString *mystr; 随后在.m文件中加入 @synthesize mystr = _myStr; 方

Swift中的类型属性(静态变量)

http://blog.haohtml.com/archives/15098 Swift中的类型属性(静态变量) Posted on 2014/06/13 类型属性语法 在 C 或 Objective-C 中,静态常量和静态变量的定义是通过特定类型加上global关键字.在 Swift 编程语言中,类型属性是作为类型定义的一部分写在类型最外层的花括号内,因此它的作用范围也就在类型支持的范围内. 使用关键字static来定义值类型的类型属性,关键字class来为类(class)定义类型属性.下面的

用Emmet写CSS3属性会自动添加前缀

CSS3的很多属性都包含浏览器厂商前缀,用Emmet写CSS3属性会自动添加前缀,比如输入trs 会展开为: -webkit-transition: prop time; -moz-transition: prop time; -ms-transition: prop time; -o-transition: prop time; transition: prop time;

【Java】+反射1+获取属性/成员变量 的名称及类型

扩展链接:[Java]+反射2+设置属性/成员变量 的值 1.目标类 2.获取目标群类中的属性及属性的类型 3.代码 1 @Test 2 public void testA() { 3 Class clazz = ZGXRequest.class; 4 // step1 获取类中所有的属性 5 Field[] fields = clazz.getDeclaredFields(); 6 for (Field field : fields) { 7 // step2 获取每个属性的类型(以点分割 需

iOS开发 私有变量 私有属性的使用选择

.m文件中可以声明私有成员变量和私有属性 属性(property)一共做了三件事:创建以下划线开头的实例变量.生成getter.setter方法. 成员变量:仅仅创建实例变量: 属性(property)会自动生成setter,getter方法,有的时候就会生成一些无用的方法,造成程序的IPA体积过大. 使用成员变量的方式运行的速度更快. 当开发使用懒加载(变量在需要的时候再去加载)的时候,使用属性(property) - (NSMutableArray *)imagesArr { if (_im

ios 关于成员变量与属性的区别

1.属性的话,含有setter/getter方法, 可以用点语法得到属性 2.成员变量没有setter/getter方法, 点语法点不出来 [email protected] 编译器会自动生辰setter/getter方法和_成员变量名的成员变量 @systhesize关键字的作用: 让编译器为你自动生成setter/getter方法 4.指定属性对应的实例变量 如果对成员变量mybtn赋予了关键字@systhesize的话, 实例变量就是mybtn, 如果没有的话, 就是_mybtn. 5.