Spacemojo
Aktives Mitglied
Thread Starter
- Dabei seit
- 16.05.2004
- Beiträge
- 624
- Reaktionspunkte
- 21
Hi!
Ich habe zwei Klassen, nennen wir sie "FirstClass" und "SecondClass".
Jede Klasse hat einen Pointer auf die jeweils andere Klasse.
Wenn ich in den beiden Header-Dateien mit #import "...." den jeweils anderen Header einbinde, gibt es einen Fehler beim kompilieren. (z.B. "Parse error before 'FirstClass')
Also binde ich in FirstClass die SecondClass mit #import ein
und in SecondClass die FirstClass mit @class.
Dann gibt es aber beim kompilieren jede Menge Warnungen ("FirstClass may not respond to ...").
Außerdem noch das:
In SecondClass.m steht drin:
float firstClassFloatValue = [firstClass floatValue];
Auf beiden Seiten steht also ein float. Jedoch sagt mir der Compiler:
"warning: no '-floatValue' method found" (obwohl sie existiert, liegt aber am @class, glaub ich)
"error: incompatible types in assignment" (obwohl [firstClass floatValue] wirklich einen float liefert)
Wann soll ich jetzt @class und wann #import verwenden? Ich komm da nicht weiter.
Hilft da ein precompiled header?
Danke schon mal!
Tobi
Ich habe zwei Klassen, nennen wir sie "FirstClass" und "SecondClass".
Jede Klasse hat einen Pointer auf die jeweils andere Klasse.
Wenn ich in den beiden Header-Dateien mit #import "...." den jeweils anderen Header einbinde, gibt es einen Fehler beim kompilieren. (z.B. "Parse error before 'FirstClass')
Also binde ich in FirstClass die SecondClass mit #import ein
und in SecondClass die FirstClass mit @class.
Dann gibt es aber beim kompilieren jede Menge Warnungen ("FirstClass may not respond to ...").
Außerdem noch das:
In SecondClass.m steht drin:
float firstClassFloatValue = [firstClass floatValue];
Auf beiden Seiten steht also ein float. Jedoch sagt mir der Compiler:
"warning: no '-floatValue' method found" (obwohl sie existiert, liegt aber am @class, glaub ich)
"error: incompatible types in assignment" (obwohl [firstClass floatValue] wirklich einen float liefert)
Wann soll ich jetzt @class und wann #import verwenden? Ich komm da nicht weiter.
Hilft da ein precompiled header?
Danke schon mal!
Tobi