2010-09-01 63 views
1

我一直在这个iPhone应用程序相当长一段时间,一切都一直工作正常,但现在所有的突然,我得到一个文件,我不记得编辑这个错误(我也不记得编辑与之有关的任何东西,但它是可能的。):iPhone:错误的UIViewController接口声明(预计“=”,“”,‘’,‘ASM’或‘之前界面’__attribute__')

/Users/on_fire/BWOC 0.5/Classes/../BrowserViewController.h:29: 
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'interface' 

它指的是第一线在此:

@interface BrowserViewController : UIViewController <UIWebViewDelegate>{ 

UIWebView *webView; 
NSString *urlString; 
UIActivityIndicatorView *activityIndicator; 
UIBarButtonItem *refreshButton; 

} 

Here是整个文件(引擎收录)。
如果有人想看看整个事情,那么pastebin也会链接到我的项目的zip文件。

我明白,如果你宁愿不下载一个ZIP,所以如果你需要任何其他文件,只是让我知道,我会把他们分开为好。

任何帮助,非常感谢!

+0

该文件看起来不错。我怀疑你进入这个地方的某个地方有其他事情可笑。查看你将#导入的文件的顶部,并查找语法错误。 – 2010-09-01 00:33:50

+0

我似乎无法在您的链接中找到该邮编。值得一提的是,当我将上面的代码片段复制并粘贴到一个项目中时,它编译得很好。我怀疑这个问题在其他地方以失踪的形式存在;或“ – freespace 2010-09-01 00:37:24

+0

显然它在我添加它时从未更新过pastebin ...我现在正在更新它 – 2010-09-01 15:12:33

回答

0

我没有看到引擎收录页面上的拉链连接,但有可能是被包含在非.m文件这个文件(即,直的C,而不是Objective-C中,文件)?

+0

那也是我的第一个猜测。 – 2010-09-01 00:35:23

+0

谢谢,但它只包含在BrowserViewController.m中http://pastebin.com/QLQAB547 – 2010-09-02 16:45:20

0

我知道这没有帮助,但头文件似乎不是问题的原因,语法是正确的。也许检入m文件

+0

我认为你对BrowserViewController.m是正确的,但我无法找到任何东西。 http://pastebin.com/QLQAB547 – 2010-09-02 16:48:08

1

我怀疑你不小心弄坏了您的AppDelegate。我已经看到这种类型的错误出现在AppDelegate后解析的文件中,由于AppDelegate尚未关闭,解析器将新界面文件的开始视为错误。

编辑补充

我还没有发现这个问题呢,而是看到了一些问题,我想我会指出。

在BrowserViewController.m:

if(urlString == @"invite.html") 

将无法​​正常工作,你所希望的方式,我怀疑。你可能会想:

if([urlString isEqualToString:@"invite.html"]) 

而且这种方法:

- (void)webViewDidStartLoad:(UIWebView *)webView 

有webView的论点是相同的名称作为类的实例变量。你应该在这里给它一个不同的名字。

与相同:

- (void)webViewDidFinishLoad:(UIWebView *)webView 

通过改变那些myWebView贯穿每个的委托方法,因为它是在传递你还提到自己的web视图。

编辑,以进一步增加

不幸的是我没有看到的错误。我查看了所有课程文件中的任何可疑内容,但没有发现任何内容。我唯一的建议是考虑你所做的最后一个或两个更改,并看看那里的代码。完全无害的东西可能会破坏编译器期望的整个结构。最坏的情况下,你有最近的备份吗?

+0

修改为ivar /委托变量重叠添加修正。 – 2010-12-10 22:10:38

+0

感谢您的尝试。我没有备份,而且由于Titanium终于可以完成我们想要做的事情,所以我转而采用了这种方式。 – 2010-12-13 18:43:34

1

我有一个非常相似的情况。

此编译错误出现在.h文件中的@interface语句中。 或者它在同一个.h文件中的前面的@class语句中。

显然,该错误是在该.h文件的第一个语句中引发的,它遵循通常的#include指令。

事实证明,我碰巧在相关的.m文件的开头键入了一个非法字符(在我的情况下是'd')。

就像是:

//some comment 
#include "something.h" 

@interface myClass : itsSuperClass { 

} 

@end 

d//some comment 
#include "something.h" 

@implementation myClass 

... 
@end 

再次被旁边的@interface声明抛出的错误,但它是由单一的“d”字造成的。

希望能帮助别人。

Cheers Hermann

相关问题