Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 转到后台时发送到解除分配实例的消息_Iphone_Objective C_Memory Management_Uiviewcontroller_Automatic Ref Counting - Fatal编程技术网

Iphone 转到后台时发送到解除分配实例的消息

Iphone 转到后台时发送到解除分配实例的消息,iphone,objective-c,memory-management,uiviewcontroller,automatic-ref-counting,Iphone,Objective C,Memory Management,Uiviewcontroller,Automatic Ref Counting,我正在iOS7(iphone5s)上使用ARC和测试 我有一个导航控制器(a)和一个推式UIViewController(b)。b通过手动序列显示模式导航视图控制器(c)。c然后按下UIViewController(d) 现在我们有两个导航堆栈,一个根和一个模态 每当我转到后台时,我都要关闭模态导航视图控制器(c)及其所有子项 在UIViewController(b)中,我有以下代码: - (void)viewDidLoad { [super viewDidLoad]; [[NS

我正在iOS7(iphone5s)上使用ARC和测试

我有一个导航控制器(a)和一个推式UIViewController(b)。b通过手动序列显示模式导航视图控制器(c)。c然后按下UIViewController(d)

现在我们有两个导航堆栈,一个根和一个模态

每当我转到后台时,我都要关闭模态导航视图控制器(c)及其所有子项

在UIViewController(b)中,我有以下代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(enteredBackground:)
                                             name:UIApplicationDidEnterBackgroundNotification object:nil];

}
-(void)enteredBackground:(NSNotification *)notification{
    if (self.presentedViewController) {
        [self dismissViewControllerAnimated:NO completion:nil];
    }
}
- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
当我进入后台时,如果我在C的rootViewController上,这可以很好地工作,但当我在D上时崩溃

2013-10-20 22:49:49.008 MyApp[2596:60b]***-[UIView发布]:发送到解除分配实例0x17036aa40的消息


我该如何解决这个问题?模态导航堆栈中的视图似乎正在发送
dealloc
,并且已经发布。在调试器中查看后,模态nvaigationcontroller(c)本身似乎仍然存在

我做了一个测试样本并检查了相同的场景,它不会在任何地方崩溃。请检查ViewController C和D中UIView类型的对象是否有任何版本。或者,您是否可以将代码发布到您正在执行上述所有操作的位置。

在您要解除的视图控制器中的某些保留/释放代码中,这一定是个问题-请提供有关解除的控制器的更多代码此处没有保留/释放代码。我正在使用arc。我也没有在这些对象上声明和显式的弱属性或强属性。ARC并不意味着没有保留/释放:)您仍然需要定义强/弱引用(转换为保留或分配)。如果您不了解保留/发布的基本知识,我建议您在知道如何手动管理后使用MRC并转到ARC,这样您就不会犯基本错误。我理解。我是说因为arc,我没有明确的保留/释放。但是我没有对任何视图持有任何强/弱引用,除了storyboard所做的引用。@PRNDL Development Studio,您能找到解决方案吗?我在我身边也有同样的体验。我可以发布,但没有明确的发布或保留。我正在使用Arc。当我回到我的电脑时,我会发布代码。谢谢