@property (nonatomic, copy) NSString* name;
jest lepsza, jak NSString
jest niezmienna i jest to klasa dziecko NSMutableString
jest zmienny.
Dopóki używasz NSString
przez całą drogę, nie zobaczysz żadnej różnicy. Ale kiedy zaczniesz używać NSMutableString
, rzeczy mogą stać się mało ryzykowne.
NSMutableString *department = [[NSMutableString alloc] initWithString:@"Maths"];
Person *p1 = [Person new];
p1.department = department;
//Here If I play with department then it's not going to affect p1 as the property was copy
//e.g.
[department appendString:@"You're in English dept."];
gdyby było po prostu zachować to zmieniły Departamentu p1
. Zatem posiadanie kopii jest zalecane w tym przypadku.
Ogólnie używam retain dla obiektów takich jak NSString, tablica i inne zmienne. ale kiedy biorę ujścia UIView, lub jakikolwiek Instan jako UIViewController biorę silny. Inaczej nie znam różnicy. –
@ArpitParekh strong === zatrzymaj: http://stackoverflow.com/questions/7796476/property-definitions-with-arc-strong-or-retain – DanZimm
Ale, kiedy biorę UIViewController jako zmienną, i muszę przypisz go jako silny, jeśli zrobię to jako zachowaj, to moja aplikacja się zawiesza ... to łącze obsługuje to. Po dodaniu go jako podglądu http://stackoverflow.com/questions/9144959/how-to-retain-view-after-addsubview-of-viewviewontrol-with-arc –