Is it safe in Objective-C to write
self.propery = [[SomeClass alloc] init];
instead of
SomeClass *tmp = [[SomeClass alloc] init
It depends on how the property is defined. If it's defined with retain or copy then, yes, your first example will leak.