Ios 离开UIViewController时应用程序崩溃

Ios 离开UIViewController时应用程序崩溃,ios,uitableview,avplayer,Ios,Uitableview,Avplayer,我的应用程序在离开UIViewController时崩溃,出现以下错误。您需要在tableViewCell的类中添加或更改 由于您的观察者仍然存在,可能会发生此崩溃。因此,您需要手动删除 -(void)dealloc { @try { [self.playerItem removeObserver:self forKeyPath:@"playbackLikelyToKeepUp"]; [self.playerItem removeO

我的应用程序在离开UIViewController时崩溃,出现以下错误。

您需要在tableViewCell的类中添加或更改

由于您的观察者仍然存在,可能会发生此崩溃。因此,您需要手动删除

-(void)dealloc {
        @try {
            [self.playerItem removeObserver:self forKeyPath:@"playbackLikelyToKeepUp"];
            [self.playerItem removeObserver:self forKeyPath:@"rate"];
            self.playerItem = nil;
        }@catch(id anException) {
            NSLog(@"Trending Video Remove Observer Exception = %@", anException);
        }
    }

您需要在tableViewCell的类中添加或更改

由于您的观察者仍然存在,可能会发生此崩溃。因此,您需要手动删除

-(void)dealloc {
        @try {
            [self.playerItem removeObserver:self forKeyPath:@"playbackLikelyToKeepUp"];
            [self.playerItem removeObserver:self forKeyPath:@"rate"];
            self.playerItem = nil;
        }@catch(id anException) {
            NSLog(@"Trending Video Remove Observer Exception = %@", anException);
        }
    }

看起来您需要将以下代码添加到视图控制器类:

- (void)dealloc {
    currentCell = nil;
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

还要确保currentCell声明为强或弱。

看起来需要将以下代码添加到视图控制器类中:

- (void)dealloc {
    currentCell = nil;
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

还要确保currentCell声明为强或弱。

尝试删除委托属性,如下所示

-(void) viewWillDisappear:(BOOL) animated
{  
   [super viewWillDisappear:animated];
   if ([self isMovingFromParentViewController])
   {
      if (self.navigationController.interactivePopGestureRecognizer.delegate == self)
      {
           self.navigationController.interactivePopGestureRecognizer.delegate = nil;
      }
   }
}

尝试删除委托属性,如下所示

-(void) viewWillDisappear:(BOOL) animated
{  
   [super viewWillDisappear:animated];
   if ([self isMovingFromParentViewController])
   {
      if (self.navigationController.interactivePopGestureRecognizer.delegate == self)
      {
           self.navigationController.interactivePopGestureRecognizer.delegate = nil;
      }
   }
}


将tempCell设置为强reference@DSDharma我设置了strong属性,但它仍将与[FeedSingleViewCell retain]一起崩溃:发送到解除分配实例0x7FEE13830600的消息使用强引用设置所有类属性。重点是内存已解除分配。yiu是否可以显示viewdidload和ViewIllappercode@Anbu.Karthik我需要你的一个澄清broset tempCell同样强大reference@DSDharma我设置了强属性,但它仍会崩溃[FeedSingleViewCell retain]:发送到解除分配实例0x7Fee1830600的消息使用强引用设置您的all class属性。重点是内存已解除分配。yiu能否显示您的viewdidload和ViewIllappercode@Anbu.Karthik我需要你的一个澄清,兄弟,它仍然会崩溃。你还需要取消订阅你手机中的通知。添加[[NSNotificationCenter defaultCenter]removeObserver:self];到单元格的dealloc和prepareForReuse方法。另外,不要忘记在这些方法中调用removeTimeObserver,直到它崩溃为止。您还需要取消订阅单元格中的通知。添加[[NSNotificationCenter defaultCenter]removeObserver:self];到cell的DealLocal和prepareForReuse方法。也不要忘记在这些方法中调用removeTimeObserver。您看到问题和我发布的错误了吗?当然,可能是当该控制器被解除分配但仍然是视图控制器的委托时发生崩溃。您尝试过吗?是的,尝试过,但我们的解决方案完全是di不过,我不会面对这个问题:发送到解除分配实例0x7FFBB8950A00的消息您看到我发布的问题和错误了吗?当然,可能是该控制器解除分配时发生崩溃,但仍然是视图控制器的代理。您尝试过此操作吗?是的,它尝试过此操作,但我们的解决方案完全不同,我不面临此问题。[FeedSingleViewCell retain]:发送到解除分配实例0x7ffbb8950a00的消息