ios-用ARC重新初始化一个对象

问题描述

用ARC重新初始化一个对象

有一个疑问希望有人能解答一下,如果在已经分配过的对象上调用[[MyClass alloc] init],会不会在ARC中发生泄漏?还是它会管理释放然后重新分配?

下面的方法是不是更合适:

myObject = nil;
myObject = [[MyClass alloc] init];

有没有其他更好的方法实现?谢谢解答

解决方案

代码在arc中不会发生内存泄露。这种写法在ARC上没问题的。

解决方案二:

用ARC,不需要在重新分配之前设置myObject为空:

myObject = [[MyClass alloc] init];

这行代码就可以,当xcode编译的时候可以自动进行正确释放。

时间: 2024-12-30 23:26:33

ios-用ARC重新初始化一个对象的相关文章

java中有时候初始化一个对象不需要new关键词

问题描述 java中有时候初始化一个对象不需要new关键词 java中有时候初始化一个对象不需要new关键词 比如 camera =Camera.open( ); 就不需要new关键词 还有那些类初始化可以像这样子的呢 解决方案 camera =Camera.open( ); 那必然有 class Camera { static public Camera open() { return new Camera(); } } 这样的代码. 封装在里面,你看不到而已. 解决方案二: 静态方法可以这样

ios-有关IOS使用ARC开发问题

问题描述 有关IOS使用ARC开发问题 想问一个特别弱的问题,如果在一个循环中创建的对象什么时候被release. ARC中. while(true){ NSData *data = [NSData dataWithBytes:buff length:size]; } 这时的*data什么时候release? 解决方案 释放掉buff,data就释放了 解决方案二: 循环结束, 等到函数再次调度就会检查内存,释放不需要的内存

iOS ARC 内存管理要点

前言 在讨论 ARC 之前,我们需要知道 Objective-C 采用的是引用计数式的内存管理方式,这一方式的特点是: 自己生成的对象自己持有.比如:NSObject * __strong object = [NSObject alloc] init];. 非自己生成的对象自己也能持有.比如:NSMutableArray * __strong array = [NSMutableArray array];. 自己持有的对象不再需要时释放. 非自己持有的对象自己无法释放. 而 ARC 则是帮助我们

详解iOS应用开发中的ARC内存管理方式_IOS

提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量" 零.简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain.release.autorelease语句.你不再需要担心内存管理,因为编译器为你处理了一切 注意:ARC 是编译器特性,而不是 iOS 运行时特性(除了weak指针系统),它也不是类似于其它语言中的垃圾收集器.因此 ARC 和

java对象转化-有时候我发现java初始化的一个对象不用new关键词的哦

问题描述 有时候我发现java初始化的一个对象不用new关键词的哦 是不是用get╳╳方法就可以得到一个对象,或者初始化一个对象呢,有时候我发现java初始化的一个对象不用new关键词的哦 解决方案 new的过程是在java虚拟机中分配内存地址,也就是分配地盘给你,如果你没有立足之地你怎么做其他事情.在spring框架中是已经帮你new好了,直接等你使用,这样可以提高效率.get/set方法只是获取值和赋值的方法而已. 解决方案二: get是封装过的 其实里边还是在new,只是你看不到.单利模式

c#对象初始化顺序实例

  本文实例分析了c#对象初始化顺序.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Progr

java中创建并初始化字符串方法

1.使用字符串常量直接初始化 String s="hello!"; 2.使用构造方法创建并初始化 String();//初始化一个对象,表示空字符序列 String(value);//利用已存在的字符串常量创建一个新的对象 String (char[] value);//利用一个字符数组创建一个字符串 String(char[] value,int offset,int count);//截取字符数组offset到count的字符创建一个非空串 String(StringBuffer

iOS应用开发中StoryBoard搭建UI界面的基本使用讲解_IOS

StoryBoard 的本质StoryBoard 是苹果在 iOS 5 中引入的新技术方案,目的是给纷繁复杂的 nib.xib 们一个温暖的家,让他们之间的关系更直观地展示出来,并提供了一种新的页面间跳转方式 segue. StoryBoard 的本质是一个 XML 文件,描述了若干窗体.组件.Auto Layout 约束等关键信息.示例文件:https://github.com/johnlui/AutoLayout/blob/master/AutoLayout/Base.lproj/Main.

iOS 进入后台 崩溃

问题描述 iOS导入SDK,初始化后可以正常进行会话,但是进入后台之后百分百crash,模拟器和真机都是一样.控制台显示__NSCFType _applicationDidEnterBackground:]: unrecognized selector sent to instance,crash log显示Exception Type:  EXC_BAD_ACCESS (SIGSEGV)Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000cT