使用UIPopoverViewController时出现预期的表达式错误

时间:2012-02-25 05:54:51

标签: ios expression

这是我在这里的第一篇文章。我会尽快找到答案,因为我还没有找到这个问题的答案。我刚开始。

我正在尝试将视图加载为popover,我正在线上学习一些教程,但是在编译时我遇到了错误。这是有问题的代码:

-(IBAction)contestButton:(id)sender;
{
contestView *screen = [[contestView alloc] init];
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:contestView];
[pop setDelegate:self];
[pop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[pop setPopoverContentSize:CGSizeMake(615, 650)];
[screen release];
}

错误:

“'matchView'之前的预期表达”

我为在我看来似乎是一个非常小的错误道歉,我似乎无法摆脱,但我感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您似乎有一个名为contestView的班级。您已创建contestView的实例并将其存储在变量screen中。然后尝试将contestView(类名)作为参数传递给选择器initWithContentViewController:。您不能将裸类名称作为参数传递。

也许你的意思是这样说:

UIPopoverController *pop = [[UIPopoverController alloc]
    initWithContentViewController:screen];

顺便说一下,在iOS编程中常常用大写字母开始一个类名。因此,您应该强烈考虑将课程重命名为ContestView

此外,方法-[UIPopoverController initWithContentViewController:]UIViewController的实例作为参数 - 而不是UIView的实例。如果您的contestView类是UIView的子类,那么在您确定调用screen而不是contestView后,您会收到其他错误。

如果contestViewUIViewController的子类,则应将其重命名为ContestViewController