__strong和__weak

arc两个概念:强指针和弱指针

默认情况下,任何指针都是强指针

使用__weak修饰的指针为弱指针

没有任何强指针指向对象,该对象就会销毁

两个对象相互引用时要注意一个用weak修饰,一个用strong修饰(例如delegate)

UI控件一般用weak修饰(也可以用strong)(控制器的view有一个subviews数组控件,只要控制器在,那么视图上的所有子视图都会存在)

时间: 2024-08-01 11:12:55

__strong和__weak的相关文章

OC语法--__unsafe_unretain、__strong、__weak、__autoreleasing的作用

nomantic.copy.retain等属性见前面的文章 今天看__unsafe_unretain.__strong.__weak.__autoreleasing这四种属性 __unsafe_unretain.__strong.__weak.__autoreleasing是出现在 LLVM 编译器 3.0版本之后. 而__unsafe_unretain.__strong.__autoreleasing可以在不使用ARC(自动参考计数)可用. 在ARC下,默认的指针都是__strong属性.这意

021-ARC与分类-OC笔记

学习目标 1.[掌握]自动释放池 2.[理解]ARC机制 3.[理解]单个对象的内存管理 4.[理解]多个对象的内存管理 5.[掌握]ARC机制下的循环引用问题 6.[了解]MRC和ARC的兼容 7.[了解]MRC自动转为ARC 8.[掌握]分类Category 一.自动释放池 使用@autoreleasepool关键字声明一个代码块,这个代码块中的对象调用autorelease方法后,在自动释放池被销毁的时候,会统一调用一次这些对象的release方法(注意只是调用对象的release方法,并

简单的OC程序

Ø     Foundation框架头文件的路径 1> 右击Xcode.app --> 显示包内容 2> Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework 主头文件 1> 主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件 2> F

反汇编看c++引用

继续反汇编系列,本次使用vc2008在x86体系下分析c++中的引用. 定义一个引用类型和将一个变量转换成引用类型一样吗? 引用比指针安全,真的是这样吗,对引用不理解的话比指针还危险. 为什么要用常量引用传参,只是为了只读? 先来说明一下下面使用到的词汇: 对象:不是OO里的对象,而是泛指在c++语言中某种类型(内嵌,结构体,类)的实例,与变量相同的意思. 存储体: "the standard (draft 3225, section [basic.life]) which clearly st

Object-C简介(和C语言的一些对比)

(一)OC简介 1. C语言的基础上,增加了一层最小的面向对象语法 2. OC是完全兼容C语言 3. 可以在OC代码中混入C语言代码,甚至是C++代码(但不是任何源文件都可以混入C++代码,需要把拓展名改成.mm,OC的拓展名.m,可以兼容C语言代码) 4. 可以使用OC开发Mac OS X平台和iOS平台的应用程序 (二)OC语法预览 1.关键字 1.1 基本上所有关键字都是以@开头 @interface.@implementation.@end @public.@protected.@pri

黑马程序员——简单的OC程序

知识点 1.#import的用途: 1> 跟#include一样,拷贝文件的内容 2> 可以自动防止文件的内容被重复拷贝 2.#import <Foundation/NSObjCRuntime.h> NSObjCRuntime.h中有NSLog函数的声明 3.Foundation框架头文件的路径 1> 右击Xcode.app --> 显示包内容 2> Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/

OC笔记一:Objective

1.OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发. C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 2. OC语法概述 2.1关键字 每一种语言都有关键字,比如C语言的 flaot.int等等,那么oc有哪些关键字呢? 基本上所有关键字都是以@开头 下面列举一些常见的关键字,可以先预览一下,不用去翻资料查找它们的含义

IOS开发--循环引用问题,普通控件为什么用weak,代理为什么用weak,block内用到外面的东

所有的引用计数系统,都存在循环应用的问题. 例如下面的引用关系对象: a创建并引用到了对象b. 对象b创建并引用到了对象c. 对象c创建并引用到了对象b. 这时候b和c的引用计数分别是2和1.当a不再使用b,调用release释放对b的所有权,因为c还引用了b,所以b的引用计数为1,b不会被释放.b不释放,c的引用计数就是1,c也不会被释放.从此,b和c永远留在内存中,造成内存浪费.这种情况,必须打断循环引用,通过其他规则来维护引用关系. 那么普通控件为什么要用weak: 如下图控制器中的Vie

黑马程序员——从C语言到OC

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- ios开发(包括iphone和ipad上的应用)使用的是objective-c这种语言,OC语言诞生于1986年,也是一门较为古老的语言.OC是完全兼容C语言的,也就意味着C语言中所有的语法特性在OC中都是可以使用的,所以很多用C语言开发的库和函数,是可以在OC语言中直接使用的(这也是OC语言中大部分关键字使用@开头的原因,主要是为了在同一文件中区分C和OC代码).但是OC的基本语法职工又有不