iOS strong & weak 简析

不用arc的话strong weak 相当于:

strong 用来修饰强引用的属性;

@property (strong) SomeClass * aObject; 
对应原来的 
@property (retain) SomeClass * aObject; 和 @property (copy) SomeClass * aObject;

weak 用来修饰弱引用的属性;
@property (weak) SomeClass * aObject; 
对应原来的 
@property (assign) SomeClass * aObject;

记忆:  [地址指针 = 男人,你 ]        [对象 = 美女]        [ 内存计数 = 满足感]

retain:陪美女看电影她很开心满足感加一。

release:干爹跟美女分手她很伤心满足感减一。

strong: 一个美女可以有很多男友,她说多一个男人多一份爱,随着一个个男人的离开,她对最后的那个男人说如果你真的爱我就让我走开。

weak: 尽管美女挽你的胳膊撒娇,但是她还是可以有一群男友,除非美女想结婚,否则男人可能要带一辈子绿帽子。

空指针: 发现带绿帽子后独守空房,男人躲在房间一角画圈圈 ,给他发消息他没回。

僵尸对象:你上了别人刚分手的女人,尽管你们曾经好过但关键的是那个女人不让你上。

野指针:去了东莞,把地上的两只脚的都试过了,想把天上的神仙美女也抓下来试试。

copy:克隆一个自己的女人让别人用,自己女人的满足感不变,克隆人满足感加一。

assign:只有基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等)能让你单刀直入,美若天仙的还是算了。

dealloc:越漂亮的女人越会骗人,全部见鬼去吧。

时间: 2024-11-03 05:33:29

iOS strong & weak 简析的相关文章

iOS Block原理简析

Block的语法 Block是iOS闭包的实现方式,能够获取局部变量的匿名函数. Block的OC声明 返回值类型 (^Block变量名字)(参数列表) = (参数列表){}; 例子 int (^add)(int a,int b) = ^(int a, int b) { return a + b; }; int sum = add(1,4); NSLog(@"sum = %d",sum); NSString* (^getFullName)(NSString *first,NSStrin

WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异简析

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异,从整体上看,应该是 gl 前缀在 WebGL 版指令中的省略,举例对比如

对于atomic nonatomic assign retain copy strong weak的简单理解

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作 1)atomic 设置成员变量的@property属性时,atomic是默认值,提供多线程安全 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic后setter函数会变成下面这样: {lock} if (property != newValue) { [property release]; property = [newValue retain]; } {unlock} 2)n

Android -- MediaPlayer内部实现简析

Android -- MediaPlayer内部实现简析 在之前的博客中,已经介绍了使用MediaPlayer时要注意的内容.现在,这里就通过一个MediaPlayer代码实例,来进一步分析MediaPlayer内部是如何运作.实现的:当然这里的分析只截止到底层调用播放器之前,因为播放器这块实在是没搞懂. 我们使用的例子来源于之前MediaPlayer Playback译文中的官方实例: String url = "http://........"; // your URL here

关于@property()的那些属性及ARC简介【nonatomic,atomic,assign,retain,strong,weak,copy。】

@property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作. NSObject对象的@property属性时,默认为atomic,提供多线程安全. 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic,setter函数会变成下面这样: NSLock *_lock = [[NSLock alloc]ini

AFNetworking封装思路简析

http://blog.csdn.net/qq_34101611/article/details/51698473 一.AFNetworking的发展 1. AFN 1.0版本 AFN 的基础部分是 AFURLConnectionOperation,一个 NSOperation 子类,实现了 基于NSURLConnection 相关的delegate+blocks,网络部分是由 NSURLConnection 完成,然后利用 NSOperation 的 state(isReady→isExecu

ARC声明属性关键字详解(strong,weak,unsafe_unretained,copy)

ARC声明属性关键字详解(strong,weak,unsafe_unretained,copy) 在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都很熟悉了,在此我也不介绍,网上有很多相关文章. 但是在iOS 5中加入ARC,产生了几个新的关键字strong, weak, unsafe_unretained.  我们可以将其与以前的关键字对应学习: strong与retain类似,weak和unsafe_unretained这两个新关键字与assign类

web应用构架LAMT及tomcat负载简析

Httpd    (mod_jk.so) workers.properties文件 uriworkermap.properties文件 <--AJP1.3--> Tomcat  --> jdk 大致流程:apache服务器通过mod_jk.so 模块处理jsp文件的动态请求.通过tomcat worker等待执行servlet/JSP的tomcat实例.使用 AJP1.3协议与tomcat通信.tomcat有借助jdk解析. 负载就是 多台tomcat.共同解析apache发送的jsp请

CentOS的网络配置简析

我们在进行对CentOS的网络配置时,一般会从IP地址(IPADDR).子网掩码(NETMASK).网关(Gateway).主机名(HOSTNAME).DNS服务器等方面入手.而在CentOS中,又有着不同的命令或配置文件可以完成这些配置操作,接下来,我们将从ifcfg系命令,iproute2系命令以及配置文件3个方面来简析网络配置的方法. 一.ifcfg系命令 ifcfg系命令包括ifconfig,route,netstat和hostname. 1.ifconfig命令 用来配置一个网络接口.