
//Checks if buildvIEw is null and returns respective outputif(BuildVIEw == NulL) NSLog(@"Build VIEw Value (pointer): Null");else NSLog(@"Build VIEw Value (pointer): Not Null");//allocates memory and initalizes valueBuildVIEw = [[UIVIEw alloc] initWithFrame:CGRectMake(0,10,10)];//Checks if buildvIEw is null and returns respective output againif(BuildVIEw == NulL) NSLog(@"Build VIEw Value (pointer): Null");else NSLog(@"Build VIEw Value (pointer): Not Null");//Releases the vIEw[BuildVIEw release];//Checks if buildvIEw is null and returns respective output againif(BuildVIEw == NulL) NSLog(@"Build VIEw Value (pointer): Null");else NSLog(@"Build VIEw Value (pointer): Not Null");
结果是:
Build VIEw Value (pointer): NullBuild VIEw Value (pointer): Not NullBuild VIEw Value (pointer): Not Null
有没有更简单的方法来检查它是否被解除分配?
解决方法 你可能意味着解除分配(被破坏),而不是被释放.被释放并不意味着被释放,这是引用内存管理的重点.被释放不是一个国家,你无法检查它;被摧毁是.如果你的意思是解除分配,那么不,没有.它被称为弱引用,而Objective-C没有它们用于引用计数.当一个对象被释放时,对它的指针不会自动执行任何 *** 作;他们成了悬空指针.
一种技术是让对象在解除分配期间发送通知,以便保存指针的所有内容都可以将其重置为nil.
通常,您必须以一种方式设计程序,即在调用它之后不再使用对象指针.在您给出的示例代码中,除了分配新值之外,不得再使用BuildVIEw进行任何其他 *** 作.
总结以上是内存溢出为你收集整理的objective-c – 如何检查对象是否已释放?全部内容,希望文章能够帮你解决objective-c – 如何检查对象是否已释放?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)