Мне нужно хранить слабые ссылки на объекты в NSArray, чтобы предотвратить циклы сохранения. Я не уверен в правильном использовании синтаксиса. Правильно ли это?
Foo* foo1 = [[Foo alloc] init];
Foo* foo2 = [[Foo alloc] init];
__unsafe_unretained Foo* weakFoo1 = foo1;
__unsafe_unretained Foo* weakFoo2 = foo2;
NSArray* someArray = [NSArray arrayWithObjects:weakFoo1, weakFoo2, nil];
Обратите внимание, что мне нужно поддерживать iOS 4.x, поэтому __unsafe_unretained
вместо __weak
.
EDIT (2015-02-18):
Для тех, кто хочет использовать истинные указатели __weak
(не __unsafe_unretained
), проверьте этот вопрос: Коллекции обнуления слабых ссылок в ARC p >