我认为它可能会导致错误,因为我在几个类中使用了按钮的图层属性。我认为这可能是原因,但我不确定。- [CALayer发布]:发送到释放实例的消息0xc60a690
现在,当我在某个时间(最长5分钟)后运行我的iPod上的应用程序的应用崩溃,并显示以下错误消息:
-[CALayer release]: message sent to deallocated instance 0xc60a690
我该如何解决这个问题?
我认为它可能会导致错误,因为我在几个类中使用了按钮的图层属性。我认为这可能是原因,但我不确定。- [CALayer发布]:发送到释放实例的消息0xc60a690
现在,当我在某个时间(最长5分钟)后运行我的iPod上的应用程序的应用崩溃,并显示以下错误消息:
-[CALayer release]: message sent to deallocated instance 0xc60a690
我该如何解决这个问题?
我认为你没有保留你的按钮在你的viewDidLoad方法,这就是为什么一段时间后他们释放。只需在您分配的末尾添加retain或将其写入@property ..
或者也许学习内存管理的正确用法,而不是将分散的内容散布在任何地方,即使它不合适。 – 2012-04-11 10:47:35
我不是那么说你把保留无处不在...检查苹果文件,然后告诉我即时通讯对或错....当你在.h类声明任何变量,你必须添加它的属性,但没有人使用它然后面临这样的问题...... – 2012-04-11 10:54:36
你的答案是“只需在你分配的末尾添加保留”。在分配对象时保留对象并不总是合适的。我想你需要先阅读Apple内存管理文档。例如,如果你从一个方法中返回一个对象,那么你不会保留它,但是你会自动释放它。同样,如果您编写@property,您并不总是希望在那里保留 - 您可能需要一份副本。 – 2012-04-11 11:00:22
您收到错误消息,因为对象已被释放,并且您试图向其发送消息。
没有看到你的代码,很难说你需要做什么才能解决问题。
我建议你阅读Objective-C中的内存管理。例如,
Apple Documentation for Memory Management
但也有很多关于它的其他文件。如果你不了解这些概念,那么你将来会遇到很多问题。
如果你想删除当前视图类的自我,它必须有IBOutlets与你并需要设置IBOutlets至零删除的视图连接,但它仍然对我的作品,就像这样:
-(void)backRootController{ //I wanna change the current viewController to rootViewController on self.tabBarController. RootViewController *_rootViewController = [[RootViewController alloc] init]; NSArray *_viewControllers = self.tabBarController.viewControllers; NSMutableArray *_tabs = [NSMutableArray array]; for(UIViewController *_tabViewController in _viewControllers){ if(_tabViewController == self){ _rootViewController.tabBarItem = _tabViewController.tabBarItem; _tabViewController = _rootViewController; } [_tabs addObject:_tabViewController]; } self.tabBarController.viewControllers = [NSArray arrayWithArray:_tabs]; //To setup the IBOutlets to nil to avoid [CALayer release] crash. (UILabel, UIView, UIImageView) self.outPreviewLabel = nil; self.outPreviewView = nil; self.outPreviewImageView.image = nil; self.outPreviewImageView = nil; //Then remove the view and exchanged current controller. [self.view removeFromSuperview]; [self removeFromParentViewController]; [_rootViewController release]; }
发表一些更多的代码..你是如何分配CALayer实例的? – Ilanchezhian 2012-04-11 10:42:16