2012-02-10 2 views
0

Моего приложение должно поддерживать IOS 3.1.2Как объявить слабую ссылку в прошивкой 3.1.2

Но это выглядит как __weak, __block и __unsafe_unretained только для новых версий прошивки

Может кто-то показать мне пример того, как объявить слабую ссылку для iOS 3.1.2?

Должен ли я просто сделать:

@interface foo 
{ 
    SomeType* _bar 
} 

@property (nonatomic, assign) Sometype* bar; 
@end 

@implementation 
@synthesize bar = _bar; 
@end 

ответ

0

Assign, как вы использовали его, так же, как unsafe_unretained.

Как вы отметили, вы не можете объявить что-то слабым перед iOS5 (который очищает ссылку для вас).

Таким образом, в основном, когда вы используете ссылку назначения, будьте осторожны, чтобы очистить любые ссылки на присваивание, когда объект будет удален.

На данный момент нет никакой ценности в поддержке iOS 3.x. Вы должны убедить кого-нибудь, за кого вы работаете, чтобы отойти от него, если только использовать ARC. Это вызовет много проблем с памятью и потенциальные сбои.

+0

В настоящее время мне нужно использовать iOS 3.x. Можете ли вы объяснить, что вы подразумеваете под «очистить любые ссылки на ссылки», когда объект будет удален? Вы имеете в виду установить его на ноль? – xcoder

+0

Да, просто установите ссылку на nil, чтобы случайно не использовать память, которая была выпущена. –

+0

Спасибо за ваш ответ. – xcoder

Смежные вопросы