2

うわー、これはイライラします。

最近、OS X 10.8 と Xcode 4.4.1 にアップグレードしましたが、Xcode がシンボルとメソッドの追跡を失ったように見えたとき、私は問題なく作業していました。実際には問題ないのに、さまざまなものが定義、宣言、合成などされていないと考え始めました(プロジェクトは問題なくビルドされ、場合によってはシンボルがファイル内にあります)。また、問題数が飛び交います。通常、1 つのファイル (AppDelegate) で 4 つの問題が検出されますが、これらのエラーのいずれかを見ると、すぐに問題が 13 または 14 に増えます。これらの新しい問題は、ほとんどの場合、ヘッダー ファイルをインポートしない場合に発生するタイプのようです。しかし、それは以前は問題ではありませんでした。

SO を見回すと、人々が DerivedData フォルダーやその他のさまざまなトリックをクリアすることがあります。DerivedData2 フォルダーを作成して指定しましたが、問題は解決しませんでした。

私はgitを使用していますが、望ましいポイントに後退することを頻繁にコミットしていません(作業は失われます/はい、教訓が得られました)。また、混乱するのはgitファイルである場合があることもSOで読みました。

申し訳ありませんが、これは非常に一般的です。Xcode の混乱を解消するために何をどのようにリセットするかについての提案はありますか? これが Xcode 4.4.1 の機能でないことを願っています! それが私がしたことであることを否定するつもりはありません...しかし、Xcodeの問題と、人々がそれらにどのように対処したかについて尋ねる価値があると思いました。

編集: @ Abizem のトリックは大いに役立ちました。これで、問題が 1 つだけ残ったので、詳細に取り掛かることができます。このコードは正常に機能していましたが、停止したことを思い出してください。AppDelegate では、.h 用に次のようにします。

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate> 
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UITabBarController *tbc;
@end

次に.mで

@implementation AppDelegate
@synthesize window = _window;
@synthesize tbc = _tbc;

まるでタイプミスのようですが、そうではないと思います。私が得るエラーは行をProperty implementation must have its declaration in interface 'AppDelegate'指してい@synthesize tbcます。これ以上基本的なことはありません。Xcode がこれを認識しないのはなぜですか?

EDIT 2:@synthesize forwindowと をtbcコメントアウトすると、次の行はすべて について不平を言い ますproperty tbc not found on object type AppDelegate *。ちなみに、これらの問題はコメントアウトする前に存在していたもので、苦情に関連していて、property declaration... interface修正されれば解消されると思っていましたが、どうやらそうではありませんでした。Xcode は、もはやどこに何tbcがあるかわかりません。これらのオブジェクトのメソッドはオーバーライドされません。ポルターガイストに違いない!

self.tbc = [[UITabBarController alloc] init];       
self.tbc.viewControllers = [NSArray arrayWithObjects:gameVC, settingsVC, helpVC, nil];
self.window.rootViewController = self.tbc;
4

1 に答える 1

0

@Abizem @Mazyod 問題が見つかりました。私は自分の#importステートメントのほとんどを pch に入れました。どうやら、新しい Xcode はこの慣習に不機嫌になっているようです。それらを適切なファイルに移動したところ、再び機能しました。私のpchに残っているのはApple製品だけです。また、Snapshots フォルダーと DerivedData フォルダーを削除し、たくさんのファイルをクリーンアップしました。フォルダーの削除が実際に修正の一部であったかどうかはわかりません。

于 2012-08-13T22:47:55.117 に答える