我正在尝试通过我当前的应用发送短信。
if ([NSClassFromString(@"MFMessageComposeViewController") canSendText])
我已尝试过以上一行,但它返回false?我相信我可以通过我的手机发送短信(使用真实设备进行测试),那么我有什么设置吗?
试过这个:
Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
if(smsClass != nil)
{
if ([smsClass canSendText])
{
[self presentMessageComposeViewController];
}
}
smsClass返回nil。
帮助很多。
答案 0 :(得分: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];
}
答案 1 :(得分:0)
根据Apple documentation,canSendText仅适用于iOS 4及更高版本。
因此,如果您使用iOS 3运行设备,则应用程序行为正常。
为什么使用NSClassFromString,以下应该可以使用(在iOS 4及更高版本上):
[MFMessageComposeViewController canSendText];
答案 2 :(得分:0)
if ([NSClassFromString(@"MFMessageComposeViewController") canSendText])
将始终返回false。因为canSendText
仅适用于课程MFMessageComposeViewController
。但NSClassFromString(@"MFMessageComposeViewController")
将返回一个类(不是MFMessageComposeViewController
类)。
可能你可以这样试试。
Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
if(smsClass != nil)
{
if ([(MFMessageComposeViewController *)smsClass canSendText])
{
[self presentMessageComposeViewController];
}
}
或者你可以简单地使用
[MFMessageComposeViewController canSendText];