0 0

ios weak 弱指针问题 0

<div class="iteye-blog-content-contain" style="font-size: 14px">NSString *bb = @"aaaa";
__weak NSString *cc = bb;
bb = nil;
NSLog(@"str1 = %@", cc);

测试输出 aaaa, 但是cc是弱指针,没有retain内存地址,而bb释放了,而cc声明为weak的指针,指针指向的地址一旦被释放,这些指针都将被赋值为nil,所以应该是null, 但是为什么还能输出 aaaa ?</div>
2014年1月08日 19:43
目前还没有答案

相关推荐

    iOS weak 关键字漫谈1

    弱引用可以在不增加对象的引用计数的同时,使得指针的访问是安全的。 weak Singleton 是一种特殊的单例模式,它有一个有趣的特性:在所有使用该单例的对象都释放后,单例对象本身也会自动释放。这不同于传统的单例...

    iOS 中weak的实现代码示例

    在iOS开发中,`weak`关键字是一个至关重要的概念,它主要用于解决内存管理中的循环引用问题。循环引用会导致对象无法被正确地释放,因为每个对象都持有对方的强引用。`weak`属性创建了一个非保留的引用,不增加对象...

    IOS开发代码注意问题.pdf

    通过以上内容的讲解,可以看出在iOS开发过程中遵循代码规范和注意相关问题的重要性。这不仅提升了开发效率,还对后期的项目维护和功能升级提供了极大的便利。总之,在iOS开发中,一个合格的开发者必须深刻理解...

    iOS 5 arc 指南

    ### iOS 5 ARC指南知识点详解 #### 自动引用计数(ARC)介绍 ...通过对Strong和Weak指针的理解,以及合理使用Xcode提供的工具,开发者可以更高效地开发出高质量的应用程序,同时减少内存泄漏和其他内存管理方面的问题。

    ios 5 ARC 完全指南

    而weak指针不拥有对象的所有权,它指向的对象可以随时被释放,一旦对象被释放,weak指针会自动置为nil,这样可以避免悬挂指针(dangling pointer)的问题,提高了程序的稳定性。 ARC也提供了对属性(property)的...

    ios应用源码之地图上多个指针显示(一些本地化应用或社交应用可以用得到) 2018127

    本篇将重点介绍如何在iOS应用中实现在地图上显示多个指针,以此来帮助开发者构建更丰富的用户体验。 首先,我们需要使用苹果的MapKit框架,它为iOS提供了强大的地图服务。MapKit框架包含了MKMapView类,它是显示...

    《Ios组件与框架-iOS SDK 高级特性刨析》代码 全部之ARC部分

    其中,`__unsafe_unretained`与`__strong`类似,但不处理对象的释放,可能导致野指针问题;`__autoreleasing`常用于Block和NSOperationQueue等异步环境。 **5. Block与ARC** 在Block中,如果捕获了对象,那么默认会...

    iOS面试题

    - `__weak`:用于声明弱引用,当被引用的对象被释放时,该指针自动设置为nil,避免了野指针问题。 - `__strong`:用于声明强引用,持有对象直到被显式释放。这是ARC下默认的引用类型。 - `__weakSelf` 和 `__...

    iOS面试题合集

    - **知识点概述**:`weak`关键字表示对象是弱引用,当强引用消失后,该对象会被自动设置为`nil`。 #### 十五、HTTPS加密原理 - **知识点概述**:HTTPS基于SSL/TLS协议,使用非对称加密进行密钥交换,然后使用对称...

    iOS面试题及答案

    iOS 面试题及答案 本文总结了 iOS 面试题及答案,涵盖了 OC 语言的基本特点、#import 与 @class 的区别、...Weak 是一个弱引用,对象在内存中存在的时间只要weak引用存在,但是对象一旦被释放,weak引用将被置为空。

    2018最新iOS 面试题

    另外,_unsafe_unretained与weak类似,但当所指对象被释放后,weak引用的变量会被置为nil,从而避免野指针。 面试题中也提到了一个关于ARC是否会导致内存泄露的问题。在ARC环境下,尽管编译器会自动管理引用计数,...

    ios5arc详细说明

    在实际编程中,通常推荐使用`strong`和`weak`,因为它们可以有效防止内存泄漏和野指针问题。`unsafe_unretained`在某些特定情况下可能会用到,但需要谨慎处理,因为它不提供任何保护措施来避免引用已释放的对象。 ...

    iOS面试知识大纲

    - weak/strong引用:避免循环引用,`weak`指针不会增加对象引用计数,`strong`则会。 3. **Runtime**: - 动态性:Objective-C运行时可以在运行期动态修改类、方法等,实现动态绑定和消息转发。 - 方法选择器...

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

    在ARC下,推荐使用`weak`,因为当对象释放时,`weak`引用会自动设为`nil`,避免野指针问题。 2. 对于代理(delegate)使用`weak`或`assign`,避免强引用循环。 3. NSTimer的循环引用可通过在不再需要定时器时调用`...

    iOS静态inline hook

    为了解决这个问题,可以使用弱符号(__attribute__((weak)))或全局变量的初始化来避免直接引用目标函数,从而防止链接时出错。 ### 3. 实现方式 静态内联HOOK的常见实现方法包括使用汇编语言、C/C++的预处理器宏...

    ios 导航栏放置多个按钮及引申的ivar变量的问题

    本文将详细探讨如何在iOS的导航栏上实现多按钮布局,以及由此引发的ivar(实例变量)管理问题。 首先,我们要知道,在原生的UINavigationController中,导航栏默认只支持左右两个BarButtonItem,即“返回”按钮和一...

    ios5之自动引用计数

    `__weak`则表示弱引用,不增加对象的引用计数。 - **自动释放池管理**:ARC使用一种新的语句来管理自动释放池,这使得开发者不再需要手动管理这些池,从而减少了出错的可能性。 - **一致性管理**:ARC使得管理...

    ios-block循环引用的三种解决办法.zip

    本资料包“ios-block循环引用的三种解决办法.zip”旨在探讨这个问题并提供解决方案。 一、循环引用的概念与危害 循环引用发生在两个或多个对象彼此强引用,导致它们都不能被正常释放,即使它们已经不再使用。在...

    iOS 5 ARC完全指南

    - **Weak指针**: 不会增加对象的引用计数,仅用于访问目的。当对象的所有strong引用消失后,weak指针会自动设置为`nil`。 #### 三、ARC的应用 1. **Xcode的ARC自动迁移** - **自动迁移工具**: Xcode提供了强大的...

Global site tag (gtag.js) - Google Analytics