Wie sind NSRect und CGRect inkompatible Typen?

7

Ok, ich habe einen Fehler:

  

Fehler: Inkompatibler Typ für Argument   1 von 'initWithFrame:'

Das ist es, was es verursacht:

%Vor%

Die Definition lautet:

%Vor%

Also das erste Argument ist NSRect, lassen Sie es überprüfen:

%Vor%

Wie kann es zu einem Fehler kommen? Sie sind dieselben Typen, die anders benannt sind!

    
Kristina Brooks 21.08.2010, 17:38
quelle

3 Antworten

9

NSRect ist derselbe Typ wie CGRect , wenn für iOS, für eine 64-Bit-Mac-Architektur oder für eine 32-Bit-Mac-Architektur mit dem Makro NS_BUILD_32_LIKE_64 1 an der Befehlszeile oder in erstellt wird ein Präfix-Header.

Oder um NSGeometry.h zu zitieren:

%Vor%     
Jens Ayton 21.08.2010, 18:45
quelle
11

Zusätzlich zu zouls Antwort dachte ich, ich würde die zwei Hilfsfunktionen (Makros?) von Apple erwähnen (beginnend mit 10.5):

%Vor%     
Eiko 21.08.2010 17:58
quelle
3

Woher haben Sie die Typdefinition von NSRect ? Laut der Dokumentation% NSRect ist wie folgt definiert:

%Vor%

Mit anderen Worten, es ist eine Struktur, die genau wie CGRect aussieht (aber keine einfache typedef ). Es wurde bereits etwas über Konvertierungen zwischen CGRect und NSRect geschrieben.

    
zoul 21.08.2010 17:49
quelle

Tags und Links