ios-addsubView释放不正常工作

问题描述

addsubView释放不正常工作
创建一个类,添加到当前视图中,然后释放:

  TestViewController *tView=[[TestViewController alloc] initWithNibName:@""TestViewController"" bundle:nil];tView.view.frame=CGRectMake(10 10tView.view.frame.size.width  tView.view.frame.size.height);[self.view addSubview:tView.view];[tView release];

添加按钮到TestViewController,然后按按钮时,就崩溃了。控制台的信息:

-[TestViewController performSelector:withObject:withObject:]: message sent to deallocated instance

解决方案

调用[tView release]时,TestViewController的dealloc方法会自动调用。然后这个类的object都会被释放。可能是因为你释放了dealloc中的button,引起应用崩溃。

没有特别好的解决方法,你可以创建一个自定义视图,然后将原来添加到viewcontroller的view添加到self.view中。

时间: 2024-09-19 10:13:22

ios-addsubView释放不正常工作的相关文章

ios-关于iOS内存释放问题,求解答

问题描述 关于iOS内存释放问题,求解答 我的类如下: 头文件: #import "BmobDanmaku.h" @interface BmobBubbleDanmaku : BmobDanmaku @property NSMutableArray *listData; @property UITableView *tableView; @property UITableViewCell *tableViewCell; -(instancetype)init; @end 实现文件: /

还没来得及更新 iOS 8.2越狱工作就已完成!

苹果今天凌晨刚刚发布iOS 8.1.2,中国越狱团队"太极"就宣布:太极越狱v1.2.0可以支持全系列iOS 8.1.2设备的越狱,起步为iPhone 4S.iPad 4.iPod touch 5,同时也继续支持iOS 8.0-8.1.1.据了解,iOS 8.1.2只是修复了一些已知Bug,此前的越狱漏洞并未得到修复,因此太极团队能够适配迅速完成.此外,"太极"还宣称,iOS 8.2的越狱工作实际上也已经完成,只等正式版发布.

见过的最全的iOS面试题

之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系

iOS开发之NSObject的多线程

1.NSObject的多线程方法(用的时候要用@autoreleasepool{}包起来) 开启后台执行任务的方法: - (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg 苹果底层允许使用performSelectorInBackground方法在后台线程更新UI,强烈不建议这么做!   在后台线程中通知主线程执行任务的方法: - (void)performSelectorOnMainThread:(SEL)a

深度解析~iOS应用程序~生命周期

摘要:iOS应用程序一般都是由自己编写的代码和系统框架组成,系统框架提供一些基本infrastructure给App来运行,而开发者则自己编写代码定制App的外观和行为,了解iOS Infrastructure及其如何工作对编写App很有帮助. iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本infrastructure给所有App来运行,而你提供自己编写的代码来定制App的外观和行为.因此,了解iOS Infrastructure

理解iOS的内存管理

远古时代的故事 那些经历过手工管理内存(MRC)时代的人们,一定对 iOS 开发中的内存管理记忆犹新.那个时候大约是 2010 年,国内 iOS 开发刚刚兴起,tinyfool 大叔的大名已经如雷贯耳,而我还是一个默默无闻的刚毕业的小子.那个时候的 iOS 开发过程是这样的: 我们先写好一段 iOS 的代码,然后屏住呼吸,开始运行它,不出所料,它崩溃了.在 MRC 时代,即使是最牛逼的 iOS 开发者,也不能保证一次性就写出完美的内存管理代码.于是,我们开始一步一步调试,试着打印出每个怀疑对象的

iOS 7新功能详解

尽管消费者对于苹果旗下最新移动操作系统已经足足等待了三个月之久,但这一备受期待的系统还是在当地时间9月18日同所有消费者见面了.对于这一系统,就连苹果CEO蒂姆-库克(Tim Cook)都将其称为是"自iPhone问世以来,iOS所迎来的最大一次改变."iOS 7的系统设计由苹果高级副总裁乔纳森-艾维(Jony Ive)担纲,自从苹果在2012年进行了高管重组后,艾维便替代了此前斯科特-福斯特尔(Scott Forstall)的位置开始全面负责iOS系统的用户界面设计工作. 1. 查看

Bob,我要怎样才能成为一名 iOS 开发者

本文讲的是Bob,我要怎样才能成为一名 iOS 开发者, iOS 开发虽不易,但别怕尽管上就是了. 然而这并不是我的桌面 自我驱动 我经常收到类似的邮件跟私信, "Bob,我怎样才能成为一个超酷的开发者?" "Bob,我想转行了.我好喜欢你的文章跟视频.我要怎样才能成为一个 iOS 开发者呢?" "Bob,我不知道应该如何开始学.而且我之前也从来没写过代码,你能帮帮我吗?" 好啦我知道啦.但我会实话实说.我尽量去回答这些一般问题.我叫这种问题叫做

使用PhoneGap命令行工具创建IOS PhoneGap项目及无证书真机调试

       在使用PhoneGap2.0及以上版本的时候,发现无法像低版本那样直接使用xcode来创建一个新的项目,只能通过PhoneGap的命令行工具来进行创建.        准备工作:        首先,准备好mac的环境和xcode的安装,地球人都知道.        然后得确定你的xcode已安装了Command Line Tools,如果不会安装的可以直接百度,上面有很多教程,这里就不多说了.        接着,下载好最新版本(我使用的是phonegap-2.4.0,此教程用于