2012-05-29 47 views
1

在使用基於導航的應用程序的教程時,我決定用我的3.2.6-Xcode創建一個基於導航的應用程序,並用Xcode 4.2打開它用於跟隨該版本的教程。 但是當我打開的Xcode 4.2同一項目(不改變或添加任何代碼),4.2的Xcode給了我2個錯誤說:因爲它是一個根類RootViewController無法使用'super',因爲它是根類

RootViewController的不能使用「超級」

現在,我的Xcode有4個類文件:RootViewController.h,RootViewController.m,SaveUpAppDelegate.h和SaveUpAppDelegate.m。該錯誤是在RootViewController.m

- (void)dealloc { 
    [super dealloc]; 
} 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Relinquish ownership any cached data, images, etc that aren't in use. 
} 

我已經通過互聯網搜索,發現這個討論(http://stackoverflow.com/questions/10113669/xcode-4-3- 2-given-error-can-use-super-because-it-is-a-root-class),他們說,原因可能是控制器是開發人員忘記了@interface行中的超類。這並不適合我的情況,因爲我(或者更好的Xcode 3.2.6)並沒有忘記在RootViewController.h超...

#import <UIKit/UIKit.h> 

@interface RootViewController : UITableViewController { 
} 

@end 

現在,我評論那些關鍵的線條勾勒出它的工作原理很好,但我敢肯定,因爲m文件中大多數自動創建的行都是用[super ....]完成的,所以我需要這些行。

如何解決問題?

+1

您是否嘗試清潔項目? – DrummerB

+0

對於這個愚蠢的問題感到抱歉,但是您對「清理」項目有何意義?刪除/註釋掉所有自動創建的代碼? - 如果你的意思是:是的。我評論了關鍵代碼,現在它工作正常。但是我不確定在教程中是否需要這個超級代碼。這就是爲什麼我問是否有另一種解決方案,或者「超級」可以被其他解決方案取代。 – Kirinriki

+0

您使用ARC(自動引用計數)嗎? – CarlJ

回答

2

乾淨。這是「運行」下的一個選項。它刪除所有自動生成的構建文件。

+0

現在它工作得很好。謝謝。我意識到刪除所有這些自動遞增的行是沒有問題的,因爲在本教程中,它們將再次設置,但使用適當的行。 – Kirinriki

4

我的決議更簡單。 .m文件中的#import「ClassHere.h」中存在拼寫錯誤。這解決了我的問題。

+1

我沒有看到這個答案與實際問題有關...... – Matthias

+1

@Matthias,他的意思是說,當你在'#import'語句中輸入錯誤時,OP所說的錯誤也會發生或相應實現文件中的@ @ implementation'定義,在這種情況下,接受的答案將不起作用。謝謝,指出這一點,特里斯。 – Donamite

相關問題