我有一個對象incall
的類。我有一個方法設置它,另一個方法運行該對象的方法。已設置實例變量nil
這裏是我的頭文件:
@interface RCTPlivo : NSObject <PlivoEndpointDelegate, CXProviderDelegate>
@property (nonatomic) PlivoIncoming *incall;
@property (nonatomic) PlivoEndpoint *endpoint;
@end
這裏是我的執行文件:
@implementation RCTPlivo
- (void)login {
endpoint = [[PlivoEndpoint alloc] init];
[endpoint login:plivoUser AndPassword:plivoPass];
endpoint.delegate = self;
}
- (void)triggerIncomingCall {
...
CXProvider *callkitProvider = [[CXProvider alloc] initWithConfiguration: configuration];
[callkitProvider setDelegate:self queue:nil];
...
[callkitProvider reportNewIncomingCallWithUUID:currentCall update:update completion:^(NSError * _Nullable error) {
if (error) {
NSLog(@"Error: %@", error);
}
}];
}
- (void)onIncomingCall:(PlivoIncoming *)incoming {
// setting
self.incall = incoming
}
- (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action
{
// Here self.incall is null
[self.incall answer];
}
@end
當我登錄perfromAnswerCall self.incall
委託它爲空。當我登錄onIncomingCall委託時,變量被設置。
我在這裏錯過了什麼?
更新 添加了初始化委託和刪除ivars的代碼。
您正在將它設置爲錯誤的實例。 – dasblinkenlight
那麼我該如何做到這一點呢? @dasblinkenlight – Ismailp
你需要先展示你如何做不正確的方式。我的意思是,你調用setter的上下文,這個代表被調用的上下文。 – dasblinkenlight