Heyhey,
ich habe gerade angefangen mich mit Objektive C zu beschäftigen, da ich in die App-Programmierung einsteigen möchte.
(An sich bin ich eigentlich in der Java-Programmierung heimisch
)
Nun, bin gerade bei der Speicherverwaltung und wollte eigene kleine Tests machen:
Alles anzeigen
Erwartet hätte ich die Ausgabe:
myInt retain count = 1
myInt retain count = 2
Jedoch kam:
myInt retain count = 7fffffffffffffff
myInt retain count = 7fffffffffffffff
...also der Hexwert für ein INT_MAX!
Kann mir das einer erklären?
Mir ist bekannt, dass konstanten Strings diese Ausgabe erscheint,
da sie im Speicher anders zugewiesen werden und somit keine Referenzzähler besitzen.
Aber bei einem NSNumber ist dies doch nicht der fall.
Leider nichts in der Suchfunktion gefunden!
Ich bitte daher um Hilfe.
Vielen Dank!
ich habe gerade angefangen mich mit Objektive C zu beschäftigen, da ich in die App-Programmierung einsteigen möchte.
(An sich bin ich eigentlich in der Java-Programmierung heimisch
)Nun, bin gerade bei der Speicherverwaltung und wollte eigene kleine Tests machen:
Quellcode
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[])
- {
- NSAutoreleasePool* pool =[[NSAutoreleasePool alloc]init];
- NSNumber* myInt =[NSNumber numberWithInteger:100]; //IntegerObjekt anlegen
- NSLog(@"myInt retain count = %lx", //retainCount Ausgabe für IntegerObj
- ((unsigned long)[myInt retainCount]));
- [myInt retain]; //retainCount erhöhen
- NSLog(@"myInt retain count = %lx", //retainCount Ausgabe für IntegerObj
- ((unsigned long)[myInt retainCount]));
- [pool drain];
- return 0;
- }
Erwartet hätte ich die Ausgabe:
myInt retain count = 1
myInt retain count = 2
Jedoch kam:
myInt retain count = 7fffffffffffffff
myInt retain count = 7fffffffffffffff
...also der Hexwert für ein INT_MAX!
Kann mir das einer erklären?
Mir ist bekannt, dass konstanten Strings diese Ausgabe erscheint,
da sie im Speicher anders zugewiesen werden und somit keine Referenzzähler besitzen.
Aber bei einem NSNumber ist dies doch nicht der fall.
Leider nichts in der Suchfunktion gefunden!
Ich bitte daher um Hilfe.
Vielen Dank!