Vraag en antwoord sessie 3 iOS-geheugenbeheer en praktische tips

In de vraag-en-antwoordsessie van deze week beantwoordt Mark Hammonds vragen die nog staan ​​op het bericht van Axit Patel "Werken met de UITableView-klasse, deel 2." Deze vraag en antwoord behandelt met name technieken voor geheugenbeheer en het vermogen om objecten te "autoreleaseeren". Mark praat ook over de beste werkwijzen bij het gebruik van viewDidLoad en andere tips met betrekking tot NSString.

Beantwoorde vragen:

Tutorial: iPhone SDK: werken met de UITableView-klasse - deel 2

Vraag:
1) Om de imagesArray te vullen, maakt u een aantal UIImageViews, maar deze worden later niet vrijgegeven. Is dit goed of bent u vergeten het gewoon te doen?
2) Waarom creëer je de dummy-arrays eigenlijk? Zou je niet gewoon kunnen zeggen self.sitesArray = [[NSArray alloc] initWithObjects: @ "...", ..., nil]; ?
Of is er een reden om het te doen zoals je deed?

Van: Dan

errata:

  • Op 06:40 in de video stel ik dat met @ "Hello World!" retourneert een automatisch vrijgegeven reeks. Dit is incorrect. Het is in plaats daarvan een statisch toegewezen reeks die gedurende de levenscyclus van het programma wordt bijgehouden, zoals aangegeven in de sectie Opmerkingen hieronder.
  • Op 07:31 Ik stel dat% @ de formaatspecificatie voor een NSString is. Technisch gezien is dit correct, maar het is belangrijk om op te merken dat% @ ook wordt gebruikt voor het afdrukken van informatie op andere Cocoa-Touch-objecten. Een object dat is geformatteerd met% @ gebruikt de -description instance-methode die oorspronkelijk is overgenomen van NSObject om aangepaste uitvoer voor dat object weer te geven. NSString implementeert dit om de tekenreekswaarde weer te geven, andere objecten gedragen zich op verschillende manieren.