CKSMSComposeRemoteViewController超时等待来自com.apple.mobilesms.compose的围栏障碍

时间:2014-11-11 13:08:22

标签: xcode sms

好的,所以sendSMS在ios7及以下版本之前工作正常。但是,在ios8上,sendSMS函数失败,问题标题中出现错误。我在这里得到一个警告(尝试通过使用其他堆栈溢出问题将NSArray更改为NSString来解决):不兼容的指针类型从“NSString *”为controller.recipients = recipients分配给'NSArray *';它返回MessageComposeResultCancelled的结果。

if (ABMultiValueGetCount(phoneNumbers) > 0) {
    phone = (__bridge_transfer NSString*)
    ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
    [self sendSMS:@"Play me on PokerBuddies. 
    Download the app at: https://itunes.apple.com/us/app   /poker-buddies/id404168013?mt=8" 
    recipientList:[NSString stringWithFormat:phone, nil]];
} else {
    phone = @"[None]";
}


- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSString *)recipients{

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
if([MFMessageComposeViewController canSendText]){
    controller.body = bodyOfMessage;
    controller.recipients = recipients;
    controller.messageComposeDelegate = self;
    [self presentViewController:controller animated:YES completion:nil];
    NSLog(@"Send SMS");

}
}

1 个答案:

答案 0 :(得分:-1)

我有类似MessageComposeController超时问题的问题。 我解决了这个问题。

你必须创建MFMessageComposeViewController的实例变量,当你要呈现消息控制器时,你必须检查是否已经创建了实例对象,然后执行nil并再次初始化该对象。所以这个错误" CKSMSComposeRemoteViewController超时等待来自com.apple.mobilesms.compose"不会来,控制器准确打开。

if ([MFMessageComposeViewController canSendText]) {
    if (messageComposer) {
        messageComposer = nil;
        messageComposer = [[MFMessageComposeViewController alloc]init];
    }
    messageComposer.recipients = arrPhoneNumber;
    messageComposer.messageComposeDelegate = self;
    messageComposer.body = @"Your text";
    isMessageComposeAppear = 1;
    [self presentViewController:messageComposer animated:YES completion:nil];
}