iphone – 从不兼容的类型’MainViewController *’分配给’id’
发布时间:2020-12-14 18:10:58 所属栏目:百科 来源:网络整理
导读:我的代码中有以下警告(XCode 4.3 / iOS 4/5) – 从不兼容的类型’MainViewController *’分配’id’ 本节提出警告 – - (IBAction)sendInAppSMS:(id)sender{MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] a
我的代码中有以下警告(XCode 4.3 / iOS 4/5) –
从不兼容的类型’MainViewController *’分配’id’ 本节提出警告 – - (IBAction)sendInAppSMS:(id)sender { MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; if([MFMessageComposeViewController canSendText]) { controller.body = @"A test message from http://www.macoscoders.com"; controller.recipients = [NSArray arrayWithObjects:@"9880182343",nil]; controller.messageComposeDelegate = self; [self presentModalViewController:controller animated:YES]; } } 特别是这条线 – controller.messageComposeDelegate = self; 有点困惑我的代码有什么问题.谷歌搜索警告我发现了一些参考,但我很难理解答案. 任何指针/解释将不胜感激. 最好的祝福 抢 我完整的.h文件 – #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> #import <AudioToolbox/AudioToolbox.h> #import <MessageUI/MessageUI.h> #import "EasyTracker.h" @interface MainViewController : TrackedUIViewController <MFMailComposeViewControllerDelegate> { IBOutlet UIView *volumeSlider; AVPlayer *radiosound; IBOutlet UIButton *playpausebutton; IBOutlet UIActivityIndicatorView *activityIndicator; NSTimer *timer; } @property(nonatomic,retain) AVPlayer *radiosound; @property(nonatomic,retain) UIButton *playpausebutton; - (void)updatebuttonstatus; - (void)playCurrentTrack; - (void)pauseCurrentTrack; - (IBAction)playbutton; - (IBAction)openMail:(id)sender; - (IBAction)sendInAppSMS:(id)sender; @end 我的.m文件的亮点 – #import "MainViewController.h" #import <AVFoundation/AVFoundation.h> #import <AudioToolbox/AudioToolbox.h> #import <MediaPlayer/MediaPlayer.h> #import "radio99AppDelegate.h" @implementation MainViewController - (IBAction)sendInAppSMS:(id)sender { MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; if([MFMessageComposeViewController canSendText]) { controller.body = @"A test message from http://www.macoscoders.com"; controller.recipients = [NSArray arrayWithObjects:@"9880182343",nil]; controller.messageComposeDelegate = self; [self presentModalViewController:controller animated:YES]; } } - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { switch (result) { case MessageComposeResultCancelled: { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"SMSTester" message:@"User cancelled sending the SMS" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; [alert release]; } break; case MessageComposeResultFailed: { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"SMSTester" message:@"Error occured while sending the SMS" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; [alert release]; } break; case MessageComposeResultSent: { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"SMSTester" message:@"SMS sent successfully..!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; [alert release]; } break; default: break; } [self dismissModalViewControllerAnimated:YES]; } - (IBAction)openMail:(id)sender { if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; mailer.mailComposeDelegate = self; [mailer setSubject:@"A Message from MobileTuts+"]; NSArray *toRecipients = [NSArray arrayWithObjects:@"fisrtMail@example.com",@"secondMail@example.com",nil]; [mailer setToRecipients:toRecipients]; UIImage *myImage = [UIImage imageNamed:@"mobiletuts-logo.png"]; NSData *imageData = UIImagePNGRepresentation(myImage); [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"mobiletutsImage"]; NSString *emailBody = @"Have you seen the MobileTuts+ web site?"; [mailer setMessageBody:emailBody isHTML:NO]; [self presentModalViewController:mailer animated:YES]; [mailer release]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure" message:@"Your device doesn't support the composer sheet" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; [alert release]; } } #pragma mark - MFMailComposeController delegate - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { switch (result) { case MFMailComposeResultCancelled: NSLog(@"Mail cancelled: you cancelled the operation and no email message was queued"); break; case MFMailComposeResultSaved: NSLog(@"Mail saved: you saved the email message in the Drafts folder"); break; case MFMailComposeResultSent: NSLog(@"Mail send: the email message is queued in the outbox. It is ready to send the next time the user connects to email"); break; case MFMailComposeResultFailed: NSLog(@"Mail failed: the email message was nog saved or queued,possibly due to an error"); break; default: NSLog(@"Mail not sent"); break; } [self dismissModalViewControllerAnimated:YES]; } @end 解决方法
您正在使用:
MFMailComposeViewControllerDelegate 它应该在哪里: MFMessageComposeViewControllerDelegate 在这里改变: @interface MainViewController : TrackedUIViewController <MFMessageComposeViewControllerDelegate> { (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |