Q & A-session 3 IOS-minneshantering och bästa praxis

I denna veckas Q & A-session svarar Mark Hammonds frågor kvar på Axit Patels post "Arbeta med UITableView Class, del 2." I synnerhet diskuteras denna Q & A minnehanteringsteknik och möjligheten att "autorelease" -objekt. Mark talar också om bästa praxis när man använder viewDidLoad och andra tips relaterade till NSString.

Frågor Besvarade:

Handledning: iPhone SDK: Arbeta med UITableView Class - Del 2

Fråga:
1) För att fylla i bilderArray skapar du ett par UIImageViews, men du släpper inte dem senare. Är det okej eller glömde du bara att göra det?
2) Varför skapar du dummy arraysna i alla fall? Kan du inte bara säga self.sitesArray = [[NSArray alloc] initWithObjects: @ "...", ..., nil]; ?
Eller är det en anledning att göra det som du gjorde?

Från: Dan

Errata:

  • 06:40 I videon anger jag att du använder @ "Hello World!" kommer att returnera en automatiskt släppt sträng. Detta är felaktigt. Det är istället en statiskt tilldelad sträng som hålls kvar under hela programmets livscykel, vilket framgår av kommentarfältet nedan.
  • 07:31 Jag anger att% @ är formatet specifierare för en NSString. Tekniskt sett är detta rätt, men det är viktigt att notera att% @ också används för att skriva ut information om andra Cocoa-Touch-objekt också. Ett objekt som är formaterat med% @ kommer att använda -descriptionsinstansmetoden som ursprungligen är ärvt från NSObject för att visa anpassad produktion för det objektet. NSString implementerar detta för att visa strängvärdet, andra föremål beter sig på olika sätt.