2010-09-01 54 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

相關問題