for(UIView *subview in [scrollView subviews]) {
NSLog(@"subviews Count=%d",[[scrollView subviews]count]);
//[subview release];
[subview removeFromSuperview];
}
in the above method if i use [subview removeFromSuperview];
it works fine...but if i use
[subview release];
It crashes..i want to know that if both are same or is there any difference between them?
@MathieuK is correct, but it's worth digging deeper into this, because it's a very important concept in ObjC. You should never call -release
on an object you didn't -retain
explicitly or implicitly (by calling one of the Three Magic Words). You don't call -release
in order to deallocate an object. You call it to release the hold you have put on the object. Whether scrollview is retaining its subviews is not your business (it does retain its subviews, but its still not your business). Whether -removeFromSuperview
calls -release
is also not your business. That's betweeen the scrollview and its subviews. All that matters is that you retain objects when you care about them and release them when you stop caring about them, and let the rest of the system take care of retaining and releasing what it cares about.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With