Zum Beispiel, wenn Sie eine value
Nachricht an eine NSInteger
solche Instanz übergeben
[a value]
es verursacht einen EXC_BAD_ACCESS.
Wie konvertiere ich ein NSInteger
in int
?
Wenn es relevant ist, werden nur kleine Zahlen <32 verwendet.
objective-c
cocoa
nsinteger
Jeffrey
quelle
quelle
Antworten:
Ta da:
NSInteger
ist nichts weiter als ein 32/64 Bit int. (Es wird die entsprechende Größe verwendet, je nachdem, welches Betriebssystem / welche Plattform Sie ausführen.)quelle
Wenn Sie dies inline tun möchten, setzen Sie einfach das
NSUInteger
oderNSInteger
auf einint
:quelle
NSInteger
Wert anstelle von a zu verwendenint
. In keinem Fall handelt es sich um eine mehrzeilige Lösung.Ich bin mir nicht sicher, unter welchen Umständen Sie ein
NSInteger
in ein konvertieren müssenint
.NSInteger ist nur ein typedef:
NSInteger Wird verwendet, um eine Ganzzahl zu beschreiben, unabhängig davon, ob Sie für ein 32-Bit- oder ein 64-Bit-System erstellen.
Sie können
NSInteger
jeden Ort verwenden, den Sie verwenden,int
ohne ihn zu konvertieren.quelle
In UIsegmentedControl häufig verwendet, wird beim Kompilieren in 64-Bit statt 32-Bit "Fehler" angezeigt. Eine einfache Möglichkeit, es nicht an eine neue Variable zu übergeben, besteht darin, die folgenden Tipps zu verwenden: add (int) :
anstatt :
quelle