Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.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
Voip推送通知在使用iOS 10.3的iPhone 7上崩溃_Ios_Iphone_Swift_Voip - Fatal编程技术网

Voip推送通知在使用iOS 10.3的iPhone 7上崩溃

Voip推送通知在使用iOS 10.3的iPhone 7上崩溃,ios,iphone,swift,voip,Ios,Iphone,Swift,Voip,我正在研究voip通知的实现。 我的版本在配备iOS 11.3的iPhone 6设备上运行良好。 但它在iOS 10.3.3版本的iPhone 7上崩溃,错误如下: pushregistry:didreceiveincomingpushwithpayload:fortype::发送到实例的选择器无法识别 如果有任何主体面临此类问题,请帮助我。您已经使用下面的完成处理程序实现了委托方法 - (void)pushRegistry:(PKPushRegistry *)registry didRecei

我正在研究voip通知的实现。 我的版本在配备iOS 11.3的iPhone 6设备上运行良好。 但它在iOS 10.3.3版本的iPhone 7上崩溃,错误如下:

pushregistry:didreceiveincomingpushwithpayload:fortype::发送到实例的选择器无法识别


如果有任何主体面临此类问题,请帮助我。

您已经使用下面的完成处理程序实现了委托方法

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload 
         forType:(PKPushType)type withCompletionHandler:(void (^)(void))completion;
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload 
         forType:(PKPushType)type;
请在没有完成处理程序的情况下实现相同的委托方法,如下所示

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload 
         forType:(PKPushType)type withCompletionHandler:(void (^)(void))completion;
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload 
         forType:(PKPushType)type;

如果需要更多帮助,请务必告诉我。

iOS11不推荐使用委托方法。 因此,请根据您的操作系统版本完成以下任务

@available(iOS, introduced: 8.0, deprecated: 11.0)
public func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) {
//do the necessary operations
}

@available(iOS 11.0, *)
public func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Swift.Void) {
//do the necessary operations
}

请为“didreceiveincomingpushwithpayload”功能以及您收到的带有通知的有效负载数据添加代码。根据这一点,您正在尝试获取一些不存在的键。我认为您必须实现pushRegistry:didReceiveIncomingPushWithPayload:forType:withCompletionHandler:以及下面的ios 11Hi。现在我正在使用func pushRegistry(uRegistry:PKPushRegistry,didReceiveIncomingPushWith payload:PKPushPayload,for type:PKPushType,completion:@escaping()->Void){}您的意思是说我还需要实现以下委托:@nonobjc func pushRegistry(registry:PKPushRegistry!,didReceiveIncomingPushWith payload:PKPushPayload!,forType:String!){}是的,添加没有完成处理程序的完全相同的委托。就像这样,pushRegistry(uRegistry:PKPushRegistry,didReceiveIncomingPushWith payload:PKPushPayload,for type:PKPushType()->Void){}