Это зависит от вашего типа недвижимости. Если вы установите prop1 как Retain / Copy, то вы должны написать так:
@property (nonatomic, retain) id prop1;
if(self.prop1 == nil)
{
SomeClass *obj = [[SomeClass alloc] init];
self.prop1 = obj;
[obj release];
}
если вы установили prop1 как Assign, то
@property (nonatomic, assign) id prop1;
if(self.prop1 == nil)
{
SomeClass *obj = [[SomeClass alloc] init];
self.prop1 = [obj retain];
[obj release];
}
В Deloloc, вы должны пересмотреть prop1, например.
- (void)dealloc
{
[prop1 release];
[super dealloc];
}
Если вы хотите быть осторожным с многопоточностью, вы можете выбрать один из следующих вариантов:
1. Make property atomic
2. Use @synchronized over prop1
3. Use Mutex Lock