//

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 Berichten van vandaag

Reageren

 

Discussietools Weergave
  #1  
Oud 04-06-09, 21:49
markvwijnen markvwijnen is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 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; 04-06-09 om 22:15.
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 04-06-09, 21:59
Malork's schermafbeelding
Malork Malork is offline
• iOS 5.1.1
• 5.1.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jun 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; 04-06-09 om 22:02.
  #3  
Oud 04-06-09, 22:01
markvwijnen markvwijnen is offline
• iOS 5.0.1
• 5.0.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Jan 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; 05-06-09 om 00:47. Reden: Gebruik voortaan de Edit-knop.
  #4  
Oud 05-06-09, 12:17
danielpunt's schermafbeelding
danielpunt danielpunt is offline
• iOS 4.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Dec 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 gecreëerd 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)

 

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Wat te doen bij Light Leaks iPad 2? xxMartenxx iPad algemeen 53 02-04-11 22:53
Iphone terug van verzekering maar light leaks X-Tince iPhone algemeen 0 22-02-11 15:10
iPhone 4/5 leaks! Reddog Archief 3 06-01-11 14:47
Instruments > Leaks herkent geen leaks vdevos Ontwikkelen voor iOS 3 09-09-09 10: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 13:29.