Does the iPhone support garbage collection? If it does, then what are the alternate ways to perform the operations that are performaed using +alloc
and -i
No, garbage collection is not supported on the iPhone currently. You need to use alloc
/release
/autorelease
.
No. Garbage collection is too large an overhead for the limited battery life etc. on the device.
You must program always with an alloc/release
pattern in mind.
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
...
[xmlParser release];
or (not suitable for every situation)
NSXMLParser *xmlParser [[[NSXMLParser alloc] initWithData:xmlData] autorelease];
Hope this helps!
Note the lack of garbage collection means weak references are not supported either.
Mono touch has garbage collection and runs on the iPhone os.
In the entire discussion nobody says about the Java language, in Java the Garbage collection is in-built in the language so it is implicitly available in Android,J2ME and Blackberry :), where as in Objective-C it is optional, so in iPhone the GC is not available.