NSArray слабых ссылок (__unsafe_unrehibited) на объекты в ARC

Мне нужно хранить слабые ссылки на объекты в массиве 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_unrehibited вместо __ weak .


РЕДАКТИРОВАТЬ (2015-02-18):

Для тех, кто хочет использовать истинные __ weak указатели (а не __ unsafe_unrehibited ), ответьте на этот вопрос: Коллекции обнуления слабых ссылок в ARC

68
задан Community 23 May 2017 в 12:10
поделиться