У меня есть экземпляр класса со строгим свойством SomeClass
, на который ссылается только этот единственный экземпляр. В какой-то момент это сильное свойство перезаписывается вновь созданным экземпляром, который назначен этому сильному свойству.
@implementation SomeClass
- (instancetype)init;
{
static NSInteger idx = 0;
NSLog(@"I am %", idx++);
self = [super init];
return self;
}
- (oneway void)dealloc;
{
NSLog("bye");
}
@end
Затем в классе, содержащем ссылку:
@property (nonatomic, strong) SomeClass *prop;
... тогда
self.prop = [[SomeClass alloc] init]; /// first time assigned
... а затем
self.prop = [[SomeClass alloc] init]; /// second time assigned
Обычно последовательность:
- НОВЫЙ экземпляр выделяется (вызывая его custom -init *)
- старый экземпляр освобождается (вызывая его -dealloc)
Вывод будет выглядеть:
I am 0
I am 1
bye
Но возможно ли, что последовательность обратная?
Есть ли возможность получить такой вывод?:
I am 0
bye
I am 1
Например, если метод SomeClass -init
выполняет какую-то сложную для CPU задачу, но все еще в том же / главном потоке?