Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone canSendText返回false_Iphone_Objective C_Ios - Fatal编程技术网

Iphone canSendText返回false

Iphone canSendText返回false,iphone,objective-c,ios,Iphone,Objective C,Ios,我正在尝试通过我当前的应用发送短信 if ([NSClassFromString(@"MFMessageComposeViewController") canSendText]) 我尝试了上面的行,但它返回false?我确信我可以通过我的手机发送短信(使用真实的设备进行测试),那么我是否缺少任何设置 所以我试过这个: Class smsClass = (NSClassFromString(@"MFMessageComposeViewController")); if(smsCla

我正在尝试通过我当前的应用发送短信

 if ([NSClassFromString(@"MFMessageComposeViewController") canSendText])
我尝试了上面的行,但它返回false?我确信我可以通过我的手机发送短信(使用真实的设备进行测试),那么我是否缺少任何设置

所以我试过这个:

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

非常感谢帮助。

根据canSendText,仅适用于iOS 4及以上版本

因此,如果您使用iOS 3运行设备,您的应用程序行为是正常的

为什么要使用NSClassFromString,以下内容应该可以使用(在iOS 4及更多版本上):

试试这个

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];
}

将始终返回false。因为
canSendText
仅适用于类
MFMessageComposeViewController
。但是
NSClassFromString(@“MFMessageComposeViewController”)
将返回一个类(而不是
MFMessageComposeViewController
class)

也许你可以这样试试

 Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
   if(smsClass != nil)
  {
      if ([(MFMessageComposeViewController *)smsClass canSendText])
      {
          [self presentMessageComposeViewController];
      }
   }
或者你可以简单地使用

[MFMessageComposeViewController canSendText];

它正在使用OS version>iOS 4.0,对吗?还要确保MessageUI.framework已导入到project.MFMessageComposeViewController中。删除在.h文件中实现此委托,并且不要忘记写这一行smsClass.MessageComposeDeleteGate=self;顺便说一句,这里不需要使用smsClass。只需使用[MFMessageComposeViewController canSendText]检查它。是的,ACB是正确的,我忘了添加MessageUI.framework:'(不能简单地使用[MFMessageComposeViewController canSendText];否则会出现此错误:架构armv7的未定义符号:“\u OBJC\u CLASS\u$\ u MFMessageComposeViewController”,引用自RegistrationPage中的:objc class ref。o ld:未找到架构armv7的符号clang:错误:链接器命令失败,退出代码为1(使用-v查看调用),我可以隐藏sms屏幕并在后台发送(具有用户权限)把我自己的号码作为发件人?是的,在我把收件人改成我自己的电话号码后,这对我是有效的。
 Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
   if(smsClass != nil)
  {
      if ([(MFMessageComposeViewController *)smsClass canSendText])
      {
          [self presentMessageComposeViewController];
      }
   }
[MFMessageComposeViewController canSendText];