Ios 类型为'的委托;必需的';

Ios 类型为'的委托;必需的';,ios,delegates,cllocationmanager,Ios,Delegates,Cllocationmanager,在ios中什么是必需的委托方法? 例如: CLLocationManagerDelegate locationManagerDidPauseLocationUpdates: Tells the delegate that location updates were paused. (required) 这个问题与最后一句话有关:‘(必选)’ 我知道有一些可选的委托方法,但是如果我不实现,会发生什么呢 所有需要的代表 特别是在我使用LocationManager的应用程序中,我没有实现上述方法

在ios中什么是
必需的
委托方法? 例如:

CLLocationManagerDelegate

locationManagerDidPauseLocationUpdates:
Tells the delegate that location updates were paused. (required)
这个问题与最后一句话有关:‘(必选)’

我知道有一些可选的委托方法,但是如果我不实现,会发生什么呢 所有需要的代表

特别是在我使用LocationManager的应用程序中,我没有实现上述方法, SDK是ios6,target=ios5

如果我不实现该方法,我的应用程序会崩溃吗? 我最近移植到了ios6,但直到现在它还没有崩溃
幸运的是该方法没有被调用,还是需要一个建议

更新:

以上信息来自ios6.1文档集。

当我打开ios6.1头文件时

LocationManager.h:

 *  Discussion:
 *    Invoked when location updates are automatically paused.
 */
- (void)locationManagerDidPauseLocationUpdates:(CLLocationManager *)manager __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_6_0); 
没有必要的提示,它们都在@optional标记下。在这种特殊情况下,在iOS 6(及更高版本)操作系统上调用“
LocationManagerDipAuseLocationUpdate
”,通知您的应用程序位置没有变化,正在关闭以节省电源

在iOS 5上,此委托方法不会被调用,但如果您实现它,它将在iOS 6中被调用


如果您以iOS 6(而不是iOS 5)为目标,如果您没有实现任何“必需”的委托方法,您将收到一条编译器警告。

它可能会崩溃,这是我们所能得到的。一般来说,这意味着如果您不实现它,某些东西将无法工作,但是文档并不像可能的那样准确。在某些情况下,使用委托的类不会检查委托是否实际实现了指定的方法,因此无论何时调用它,都会得到异常。所以,如果文件上说需要它,那么最好实施它,即使您的实现是一个空方法。

在LocationManager.h中,也没有关于required的提示:告诉我一件事,是否可能不实现协议中声明的required方法,而您没有在符合该协议的类中定义它?可能不实现required方法,但这不是一个好主意(你通常会得到一个编译警告)只有警告出现并崩溃?如果我们不实现所需的方法,崩溃会发生吗?是的,它会。你应该假设它会崩溃。