2016-10-10 11 views
2

私は私のコードである。ここiOSの10にCXCallObserverでiOS 10:CallKit/CXCallObserverを使用してコールイベントを取得するにはどうすればよいですか?

をCTCallCenterを変更:

#import <CallKit/CXCallObserver.h> 
#import <CallKit/CXCall.h> 

-(void)viewDidLoad { 

    CXCallObserver *callObserver = [[CXCallObserver alloc] init]; 
    [callObserver setDelegate:self queue:nil]; 

    ... ... 
} 

- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call { 
    if (call.hasConnected) { 
     NSLog(@"********** voice call connected **********/n");   
    } else if(call.hasEnded) { 
     NSLog(@"********** voice call disconnected **********/n");   
    } 
} 

しかし、私は音声通話イベントを得ることができないと私は、このような警告だ:

Sending 'HomeViewController *const __strong' to parameter of incompatible type 'id<CXCallObserverDelegate> _Nullable 

私を助けてください。

答えて

1

CXCallObserverDelegateが見つかりませんでした。

@interface HomeViewController : UIViewController <CXCallObserverDelegate> 

@end 

警告が消え、音声コールイベントが発生します。 私はこれがあなたを助けてくれることを願っています。

1

callObserverに強い参照を格納することを忘れてはいけないので、それはあまりにも早く解放されることはありません。詳細については

@interface YourClass()<CXCallObserverDelegate> 
@property (nonatomic, strong) CXCallObserver *callObserver; 
@end 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    CXCallObserver *callObserver = [[CXCallObserver alloc] init]; 
    [callObserver setDelegate:self queue:nil]; 
    self.callObserver = callObserver; 
} 

this答えを確認してください。

関連する問題