我不知道为什么会这样。它对我来说是正确的。我写了另一个UIAlertView,它看起来很好,一旦我删除了它,它就错误地写了我写的那个。我正试图遵循这个tutorial。
这是在我的viewcontroller.m
中- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result) {
case MessageComposeResultCancelled:
NSLog(@"Cancelled");
break;
case MessageComposeResultFailed:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome To My App" message:@"This app will ... First you need to ..." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
break;
case MessageComposeResultSent:
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
}
错误显示在它的许多行上,例如:在消息发送表达式的开头缺少“[”。 (如果我把它放在它想要在initWithTitle之后放另一个和另一个和另一个:)
下一个错误是:使用未声明的标识符'alert'(在展示和发布时说明)
知道发生了什么事吗?提前谢谢。
答案 0 :(得分:6)
尝试在包含多行的case语句中添加括号。
- (void)messageComposeViewController:(MFMessageComposeViewController
*)controller didFinishWithResult:(MessageComposeResult)result {
switch (result) {
case MessageComposeResultCancelled:
NSLog(@"Cancelled");
break;
case MessageComposeResultFailed: {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome To My App" message:@"This app will ... First you need to ..." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
break;
}
case MessageComposeResultSent:
break;
default:
break; }
[self dismissModalViewControllerAnimated:YES]; }
答案 1 :(得分:0)
如果警报中没有额外的按钮,为什么要设置代理?我想,你应该改变委托:self to delegate:nil。