我想在iPhone 4中使用以下代码发送短信,但由于此代码,应用程序崩溃。
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *smsComposerController = [[[MFMessageComposeViewController alloc] init] autorelease];
[smsComposerController setBody:@"First SMS"];
smsComposerController.recipients = [NSArray arrayWithObjects:@"9886333333",@"9980444444",nil];
smsComposerController.messageComposeDelegate = self;
[smsComposerController release];
}
我是短信发送的新手,所以任何人都可以帮助我做错了吗?
答案 0 :(得分:4)
您是autoreleasing
,然后是releasing
smsComposerController
。
只需发布一次。您可以查看内存管理规则here。
答案 1 :(得分:3)
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *smsComposerController = [[[MFMessageComposeViewController alloc] init] autorelease];
[smsComposerController setBody:@"First SMS"];
smsComposerController.recipients = [NSArray arrayWithObjects:@"9886333333",@"9980444444",nil];
smsComposerController.messageComposeDelegate = self;
[smsComposerController release]; <-------------- THIS IS YOUR ERROR
}
您不应该发布自动释放对象。
答案 2 :(得分:0)
您需要添加[self presentModalViewController:smsComposerController animated:YES];
在您的代码中发送短信。
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *smsComposerController = [[[MFMessageComposeViewController alloc] init] autorelease];
[smsComposerController setBody:@"First SMS"];
smsComposerController.recipients = [NSArray arrayWithObjects:@"9886333333",@"9980444444",nil];
smsComposerController.messageComposeDelegate = self;
[self presentModalViewController:smsComposerController animated:YES];
}