Po przeczytaniu wielu artykułów, więc posty i wykonane aplikacje demo aby sprawdzić zmiennych atrybutów własności, postanowiłem umieścić wszystkie informacje atrybuty razem
- atomowy // Wartość domyślna
- nonatomic
- strong = retain // default
- weak = unsafe_unretained
- zatrzymaj
- przypisać // domyślna
- unsafe_unretained
- kopia
- readonly
- readwrite // domyślna
więc poniżej jest szczegółowe powiązanie artykuł, gdzie można znaleźć wszystkie wyżej wymienione cechy, które napewno pomogą ty. Wielkie dzięki dla wszystkich ludzi, którzy udzielają tutaj najlepszych odpowiedzi !!
Variable property attributes or Modifiers in iOS
- zachowują = silny
- jest zachowana, stara wartość zostanie zwolniony i jest przypisany
- zachować określa nową wartość należy przesłać -retain na zlecenie i stara wartość wysłana -odpowiedź
- retain jest taki sam jak silny.
- jabłko mówi, że jeśli napiszesz, zachowaj, to automatycznie się skonwertuje/działa jak tylko silne.
- metody typu "Alloc" obejmują ukrytą "utrzymać"
przykład:
@property (nonatomic, retain) NSString *name;
@synthesize name;
- przypisać
- przypisanie jest domyślny i po prostu wykonuje przypisanie zmiennej
- assign jest atrybutem właściwości, który mówi kompilatorowi, jak zsyntetyzować implementację ustawiającego właściwości.
- Użyłbym przydzielić dla właściwości pierwotnych C i słabych dla słabych odniesień do obiektów Objective-C.
Przykład:
@property (nonatomic, assign) NSString *address;
@synthesize address;
readonly
- deklarując swoją nieruchomość jako tylko do odczytu poinformować kompilator nie wygeneruje metody setter automatycznie.
- Wskazuje, że właściwość jest tylko do odczytu.
- Jeśli określisz tylko do odczytu, w bloku @implementacja wymagana jest tylko metoda pobierająca. Jeśli użyjesz dyrektywy @synthesize w bloku @implementation, syntetyzowana zostanie tylko metoda getter. Co więcej, jeśli spróbujesz przypisać wartość przy użyciu składni kropkowej, pojawi się błąd kompilatora.
przykład:
@property (nonatomic, readonly) NSString *name;
@synthesize name;
- ReadWrite
- setter gettera wygenerowany.
- Wskazuje, że właściwość należy traktować jako odczyt/zapis.
- Ten atrybut jest domyślny.
- Obie metody getter i setter są wymagane w bloku @implementation. Jeśli użyjesz dyrektywy @synthesize w bloku implementacji , metody getter i setter zostaną zsyntetyzowane.
przykład:
@property (nonatomic, readwrite) NSString *name;
@synthesize name;
Patrz także: [atomowej vs właściwości nonatomic] (http://stackoverflow.com/questions/588866/atomic-vs-nonatomic-properties) – PengOne
Patrz także : cel c 101 (retain vs assign) @ http://stackoverflow.com/questions/1380338/objective-c-101-retain-vs-assign-nsstring –