1

我将 CallKit 框架集成到我的应用程序中,并拨打电话。

我可以在本地电话最近记录中看到拨出电话。

但是当我点击拨出电话并想要获取电话信息时。它崩溃了。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSUserActivity interaction]: unrecognized selector sent to instance 0x17d4ab90'  

这是我在 AppDelegate.m 中的代码

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler NS_AVAILABLE_IOS(8_0) { INInteraction *interaction = userActivity.interaction;
INStartAudioCallIntent *startAudioCallIntent = (INStartAudioCallIntent *)interaction.intent;
INPerson *contact = startAudioCallIntent.contacts[0];
INPersonHandle *personHandle = contact.personHandle;
NSString *phoneNumber = personHandle.value;
}

我撞车了INInteraction *interaction = userActivity.interaction;

我检查了交互信息

@property (readonly, nullable, NS_NONATOMIC_IOSONLY) INInteraction *interaction API_AVAILABLE(macosx(10.12), ios(10.0));

以下是我的环境

mac: 10.12.1 xcode: 8.1 iOS: 10.1.1

它不违反要求

我搜索了一整天,但似乎没有人遇到这个问题。

代码级别有什么问题或有其他方法获取电话信息吗?

4

2 回答 2

3

在此处输入图像描述

我尝试添加 NSUserActivity 类型但未使用,我也使用此方法解决此问题。我可以通过在 Target->Build Phases-> Link Binary with Libraries 中添加 intents.framework 来解决此问题,在 此处输入图像描述

于 2017-03-27T12:54:08.030 回答
0

我希望你错过了 info.plist 中的 NSUserActivityTypes 键。以下是根据您正在处理的意图添加的键和值,

在此处输入图像描述

于 2016-11-16T09:15:21.747 回答