Ist man unter ARC gezwungen alloc-init (oder new *brrrr*) zu verwenden um ARC sinnvoll zu nutzen?
Ich finde es doch unpraktisch denn die convenient constructors haben ja nicht umsonst den namen.
ich dachte immer dass apple unter ARC die [x autorelease] einfach rauslässt? dem scheint aber nicht so zu sein.
hier ein kleiner test mit dessen resultat ich eben nicht gerechnet hätte:
Alles anzeigen
Ich finde es doch unpraktisch denn die convenient constructors haben ja nicht umsonst den namen.
ich dachte immer dass apple unter ARC die [x autorelease] einfach rauslässt? dem scheint aber nicht so zu sein.
hier ein kleiner test mit dessen resultat ich eben nicht gerechnet hätte:
Quellcode
- - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
- {
- sleep(3);
- int l = 1000 * 1000 * 30;
- {
- void *c = malloc(l);
- NSData *d = [[NSData alloc] initWithBytesNoCopy:c length:l freeWhenDone:YES];
- NSLog(@"d: %lu", d.length);
- sleep(1);
- }
- sleep(1);
- {
- void *c = malloc(l);
- NSData *d = [NSData dataWithBytesNoCopy:c length:l freeWhenDone:YES];
- NSLog(@"d: %lu", d.length);
- sleep(1);
- }
- sleep(10);
- }