NSData dataWithContentsOfURL leaks.

NSData dataWithContentsOfURL leaks. discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Heej, Ik vroeg me af of iemand wist waarom dataWithContentsOfURL van NSData leaked? Naboots code: NSData *content = [NSData dataWithContentsOfURL:url]; LEAK! Dan plaatsen we er ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 4 June 2009, 20:49
» iPhone 4S 16GB (Zwart) [FW: 5.0.1]  [Jailbreak: Nee]
» iPad 1 Wi-Fi 16GB [FW: 5.0.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 26 January 2009
Berichten: 113
Standaard NSData dataWithContentsOfURL leaks.

Heej,

Ik vroeg me af of iemand wist waarom dataWithContentsOfURL van NSData leaked?

Naboots code:
NSData *content = [NSData dataWithContentsOfURL:url];

LEAK!

Dan plaatsen we er een [content release]; bij, wat niet logisch is want je verwacht een auto released object terug, maar het zou kunnen dat Apple een foutje heeft gemaakt. We builden het weer.

CRASH!

Fijn. Alle manieren van contentsOfURL via NSData leaken.

Omzeil oplossing
NSError *error = nil;
NSString *tmpContent = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&error];
NSData *content = [tmpContent dataUsingEncoding: NSASCIIStringEncoding];

LEAK en CRASH vrij.

Laatst gewijzigd door markvwijnen; 4 June 2009 om 21:15.
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 4 June 2009, 20:59
Malork's schermafbeelding
» iPhone 4S 32GB (Wit) [FW: 5.1.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi + 4G 16GB (Zwart) [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 31 May 2008
Locatie: Landgraaf
Berichten: 178
Stuur een bericht via MSN naar Malork
Standaard

Hoezo verwacht je een autoreleased object terug...? je Alloceert hem,dus ben je zelf verantwoordelijk voor de release...

Volgens mij zou het niet mogen crashen, tenzij je de release eerder aanroept (onwaarschijnlijk) of je content-alloc in een if-statement doet, waardoor hij gereleased wordt terwijl het object al eerder gereleased is of niet bestaat.

Laatst gewijzigd door Malork; 4 June 2009 om 21:02.
  #3  
Oud 4 June 2009, 21:01
» iPhone 4S 16GB (Zwart) [FW: 5.0.1]  [Jailbreak: Nee]
» iPad 1 Wi-Fi 16GB [FW: 5.0.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 26 January 2009
Berichten: 113
Standaard

Citaat:
Oorspronkelijk geplaatst door Malork Bekijk bericht
Hoezo verwacht je een autoreleased object terug...? je Alloceert hem,dus ben je zelf verantwoordelijk voor de release...
Woops foutje was aan het proberen om te kijken of als ik het zelf zou allocaten en releasen het probleem niet zou ontstaan, maar dat lukte niet en heb ik de oude code hier geplaatst, my bad, heb het aangepast.

Code:
NSData *data    = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.answersingenesis.org/assets/images/articles/aqua/Bottlenose_Dolphin.jpg"]];
UIImage *image = [[UIImage alloc] initWithData:data];
        
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[contentViewController.view addSubview:imageView];
        
[data release];
[image release];
Dit lijkt geen leak te geven. Vreemd.

Laatst gewijzigd door iMario; 4 June 2009 om 23:47. Reden: Gebruik voortaan de Edit-knop.
  #4  
Oud 5 June 2009, 11:17
danielpunt's schermafbeelding
» iPhone 3G 16GB (Wit) [FW: 4.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 19 December 2007
Locatie: Vlaardingen
Berichten: 87
Standaard

Vaak is het zo dat als je een leak ziet uit UIKit of Foundation is het iets dat daar uit een object gecreerd hebt, zelf retained en niet released. Leaks in UIKit en Foundation zijn erg zeldzaam, er werken heel veel mensen aan en het meeste is al gefixed.

als eerste moet je altijd kijken in je eigen code.
Reageren


Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Wat te doen bij Light Leaks iPad 2? xxMartenxx iPad algemeen 53 2 April 2011 21:53
Iphone terug van verzekering maar light leaks X-Tince iPhone algemeen 0 22 February 2011 14:10
iPhone 4/5 leaks! Reddog Archief 3 6 January 2011 13:47
Instruments > Leaks herkent geen leaks vdevos Ontwikkelen voor iOS 3 9 September 2009 09:37

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 22:23.