`

strong weak copy

    博客分类:
  • ios
 
阅读更多
 
copy的使用
    如果是mutable,则copy为新的obj(引用计数为1);
    入股市immutable,则retain;
 
strong 指向某个对象,引用计数+1
 
assign
 
weak    指向某个对象,但是不+1
 
NSString
NSNumber
NSString/NSMutableString 
NSArray/NSMutableArray 
NSDictionary/NSMutableDictionary 
NSSet/NSMutableSet
 
对变量的修饰符
__strong    +1
__weak        不加1,空位nil
__unsafe_unretained    不加1,空的时候就是野指针    可以忽略
 
apple文档:
https://developer.apple.com/library/ios/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011226-CH1-SW11
 

 

http://www.jianshu.com/p/4a1d1921284b
分享到:
评论

相关推荐

    IOS中(assign,retain,copy,weak,strong)的区别以及nonatomic的含义

    IOS中(assign,retain,copy,weak,strong)的区别以及nonatomic的含义 我们在声明@property 属性时,总是要在括号中写上assign、retain、copy、weak、strong中的一个,很多时候,我们仅仅只是按照习惯去写经常写...

    分页效果设置

    @protocol ZSegmentedControlDelegate ...@property (nonatomic, weak)id <ZSegmentedControlDelegate> delegate; //@property (nonatomic, copy) void (^indexChangeBlock)(NSUInteger index);

    iPhone Mac Objective-C内存管理教程和原理剖析

    7. strong 和 weak 属性:在 ARC(Automatic Reference Counting,自动引用计数)时代,retain 和 release 被替换为 strong 和 weak。strong 表示强引用,相当于原来的 retain,会增加对象的引用计数。weak 表示弱...

    iOS面试题及答案

    十一、Strong 与 weak Strong 是一个强引用,对象在内存中存在的时间只要strong引用存在。Weak 是一个弱引用,对象在内存中存在的时间只要weak引用存在,但是对象一旦被释放,weak引用将被置为空。

    IOS开发代码注意问题.pdf

    在Objective-C中,修饰符(如copy、mutableCopy、strong、weak、assign)用于声明变量时的内存管理策略和属性的特性。例如,copy修饰符在复制不可变对象时只进行浅拷贝,它不会开辟新的内存空间,而是使新的指针指向...

    iOS 对象属性详细介绍

    retain,strong, copy,weak,assign,readonly, readwrite, unsafe_unretained 下面来分别讲讲各自的作用和区别: retain,计数器加1, (增加一个指向内存的指针) 对应release(计数器-1) setter 方法对参数进行 ...

    iOS内存管理方面的面试题汇总

    1. 使用`weak`或`unsafe_unretained`引用代替`strong`引用,以打破循环引用。在ARC下,推荐使用`weak`,因为当对象释放时,`weak`引用会自动设为`nil`,避免野指针问题。 2. 对于代理(delegate)使用`weak`或`...

    Block实现原理与内存特性(v1.1)

    1. **__strong引用**:默认情况下,Block会创建对捕获对象的强引用,可能导致循环引用,引发内存泄漏。例如,一个Block内部引用了一个对象,而这个对象又持有了Block,两者互相引用,无法释放。 2. **__weak引用**:...

    Objective-C内存管理课件.pdf

    2. 如果你从某个地方获取了一个对象(例如通过retain、copy、或者strong属性),你也就拥有了这个对象。需要在不再需要时对它执行release或者ARC会帮你处理。 3. 如果你不拥有一个对象,就不要释放它。这可能会导致...

    2021iOS笔试题总结.pdf

    11. strong与weak,以及Unsafe_unretained与weak的区别: - strong表示强引用,ARC会自动插入retain。weak表示弱引用,类似于手动管理内存的assign。 - Unsafe_unretained与weak的区别在于,当对象被销毁后,weak...

    史上最全的iOS面试题及答案

    - **strong、weak、retain、assign、copy等的区别**: - **strong**:强引用,对象的所有权归当前属性所有,会增加对象的引用计数。 - **weak**:弱引用,不增加对象的引用计数,当对象被释放后,指针会被置为nil...

    内存管理面试题1

    3. **Block**:使用`__weak`修饰`self`来避免循环引用,但在某些场景下可能需要在block内部使用`__strong`来确保对象在block执行期间有效。 六、悬垂指针与野指针 - **悬垂指针**:指向已被释放内存的指针,继续...

    2018最新iOS 面试题

    最后,strong与weak关键字用于属性的声明,它们分别表示强引用和弱引用。在ARC下,strong告诉编译器自动管理对象的所有权,而weak则不增加引用计数,类似手动管理的assign。另外,_unsafe_unretained与weak类似,但...

    OC底层面试题1

    3. 引用计数:retain(或strong)用于增加对象的引用计数,assign常用于基本数据类型,可能导致悬垂指针问题。weak不会增加引用计数,当对象释放后,weak指针会自动设为nil。copy分为浅拷贝和深拷贝,浅拷贝仅复制...

    block的循环引用导致的内存泄露的示例及解决办法

    2. 使用Block的copy方法:Block在ARC下默认为`__strong`,可以通过`__unsafe_unretained`或`__weak`修饰来弱引用对象。但这并不安全,因为对象可能在Block执行前被释放。更推荐使用`weakSelf`。 3. 使用...

    ios 5 ARC 完全指南

    在ARC环境下,指针可以拥有两种类型的角色:strong(强引用)和weak(弱引用)。Strong指针意味着它持有对象的所有权,只要至少有一个strong指针指向一个对象,该对象就不会被销毁。当最后一个strong指针被释放或...

    OC-模型的Setter,Getter的由来,@property的由来

    当我们在类接口中声明一个@property,OC编译器会自动生成对应的setter和getter方法,同时处理内存管理(在ARC时代之前是retain、release等,现在是strong、weak等)。例如: ```objc @interface Person : NSObject ...

    2017年5月iOS招人心得(附面试题) - 简书1

    6. **NSString与copy/strong**:NSString是不可变对象,通常使用strong进行引用。而当需要拷贝一个字符串时,应使用copy关键字以确保新对象独立。 7. **ARC(Automatic Reference Counting)**:ARC是iOS中的自动...

Global site tag (gtag.js) - Google Analytics