2014-10-28 51 views
0

我們剛剛創建了一個iOS應用程序,它在開發它的Mac上完美工作,但當我們嘗試在不同的Mac上編譯它時引發錯誤XCode:預期的標識符或'('

爲了將它轉移到第二臺Mac上,我們只是將整個源目錄複製到U盤上,如果這是我的問題的原因,那麼有人可以讓我知道更好的方式來傳輸項目。該項目通過CocoaPods吸引了大量的依賴關係,Pods項目/目標在兩臺Mac上都能正確構建。

For legacy兼容性的原因,這兩個Mac都運行XCode 5.0.2和編譯爲iOS 6.1。

當試圖建立主體工程,我們得到的類型的幾個錯誤:在程序

•預期標識符或「(」

•意外「@」•缺少上下文方法聲明

•預期的方法體

這是編譯錯誤在我的老天的一個例子DER文件(再次,代碼是完全一樣的,因爲這其中是其他Mac上正確編譯註意):

#import <UIKit/UIKit.h> 
@interface DiagnosticViewController : UIViewController <UITextFieldDelegate> 

@property (weak, nonatomic) IBOutlet UITextView *diagnosticReadout; 
@property (weak, nonatomic) IBOutlet UITextField *connectionNameTextBox; <- Unexpected ‘@’ in program 
-(void) messageReceived:(NSString*)webPublisherMessage;  <- Missing context for method declaration 
@end   <-Expected method body 

有沒有人有什麼回事任何想法?我只能假設構建設置有問題,或者包含路徑或其他內容,但我已經檢查了所有這些設置,並且它們在兩臺Mac上看起來都是相同的。

+0

檢查您是否具有相同的Xcode版本,並檢查您是否使用絕對路徑進行任何操作(您不應該)。快速檢查絕對路徑:在第一臺計算機上覆制整個源代碼樹,並檢查副本是否構建。 – gnasher729 2014-10-28 11:13:15

+0

路徑不是問題,因爲這是使用系統提供的類型的類聲明。 OP:你是否嘗試過深層清潔(Cmd + Opt + Shft + K)? – trojanfoe 2014-10-28 11:17:06

+0

XCode的版本是相同的,目前沒有絕對路徑,因爲我可以看到並且深度清理沒有解決問題 – RikSaunderson 2014-10-28 11:24:38

回答

0

我以前有過類似的問題。

您應該清理項目。如果仍然不起作用,請檢查與XCode無法創建/修改/刪除文件有關的任何錯誤,因爲您從USB複製了內容,您可能會遇到文件權限問題。您可以將項目目錄下的所有文件權限設置爲777給正在運行的用戶。

在我看來,原因在於被編譯的文件與您期望的源代碼不同。

1

檢查在該行之前是否沒有任何空白字符。只需將光標放在@property的開頭,這會給您帶來麻煩,並嘗試按退格鍵一次或兩次。看看錯誤是否消失。這對我有用