в чем разница между этими удержаниями?:
@property (nonatomic, retain) NSString *A_StringToRetain;
и
NSString *B_StringToRetain;
B_StringToRetain = [[MyClass GetStringValue] retain];
Поскольку при использовании свойства строка не будет сохраняться и использоваться вторые пути, все хорошо, но мне нужно проверить и освободить, чтобы избежать утечек.
Пример :
Я объявил в .h
NSString *A_StringToRetain;
@property (nonatomic, retain) NSString *A_StringToRetain;
в .m
я использую
A_StringToRetain = @"MyValue";
но когда я выхожу из метода, я потерял A_StringToRetain
. Это зомби.
Если я не использую свойство и объявляю строку таким образом
NSString *B_StringToRetain;
B_StringToRetain = [[MyClass GetStringValue] retain];
строка находится в памяти.
Кто-нибудь скажет, почему, пожалуйста?
Это не так, как распределять / сохранять?
Какие отличия?
спасибо.