Jaka jest różnica między "słabym" i "przypisać" w deklaracji własności delegata

Jaka jest różnica między tym:

@property (nonatomic, weak) id  <SubClassDelegate> delegate; 

I to:

@property (nonatomic, assign) id  <SubClassDelegate> delegate; 

Chcę użyć własności dla delegatów.

Author: Cœur, 2012-02-24

1 answers

Jedyną różnicą między weak i assign jest to, że jeśli obiekt, na który wskazuje Właściwość weak, jest dealokowany, wtedy wartość wskaźnika weak zostanie ustawiona na nil, dzięki czemu nigdy nie ryzykujesz dostępu do śmieci. Jeśli użyjesz assign, tak się nie stanie, więc jeśli obiekt zostanie dealokowany spod ciebie i spróbujesz uzyskać do niego dostęp, uzyskasz dostęp do śmieci.

Dla obiektów Objective-C, jeśli znajdujesz się w środowisku, w którym możesz używać weak, powinieneś go używać.

 154
Author: yuji,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-24 09:49:07