1

現在のアプリで SMS を送信しようとしています。

 if ([NSClassFromString(@"MFMessageComposeViewController") canSendText])

上記の行を試しましたが、false が返されますか? 電話から SMS を送信できると確信しています (テスト用に実際のデバイスを使用)。不足している設定はありますか?

だからこれを試した:

   Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
   if(smsClass != nil)
   {
      if ([smsClass canSendText])
      {
          [self presentMessageComposeViewController];
      }
   }

smsClass は nil を返します。

大いに感謝します。

4

3 に答える 3

2

これを試して

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
if([MFMessageComposeViewController canSendText])
{
    controller.body = @"Hello Test massage";
    controller.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil];
    controller.messageComposeDelegate = self;
    [self presentModalViewController:controller animated:YES];
}
于 2012-11-06T08:34:59.357 に答える
0

According to Apple documentation canSendText is available only for iOS 4 and above.

So if you are running your device with iOS 3 your application behaviour is normal.

And why are you using NSClassFromString , the following should work (on iOS 4 and more) :

[MFMessageComposeViewController canSendText];
于 2012-11-06T08:23:16.287 に答える
0
if ([NSClassFromString(@"MFMessageComposeViewController") canSendText])

常に false を返します。canSendTextclass でのみ機能するためですMFMessageComposeViewController。ただしNSClassFromString(@"MFMessageComposeViewController")、クラスを返します(クラスではありませんMFMessageComposeViewController)。

このように試すことができるかもしれません。

 Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
   if(smsClass != nil)
  {
      if ([(MFMessageComposeViewController *)smsClass canSendText])
      {
          [self presentMessageComposeViewController];
      }
   }

または、単に使用できます

[MFMessageComposeViewController canSendText];
于 2012-11-06T09:33:18.777 に答える