我相信ARC会处理所有内存管理问题,是否有理由使用retain。现在有理由使用assign吗?
我试图查看一些文档,但找不到任何内容
如果我们不再需要这些东西,那么在创建它们时我们应该分配什么属性?我们应该把一切都变得强大吗?
答案 0 :(得分:2)
如果您正在使用ARC,则应将您的媒体资源设为weak
或strong
。你应该使用weak
,如果你希望该属性存在,只要其他一些对象指向该属性,如果你希望该属性存在,只要你(自己)指向它就应该使用strong
例如,当你的对象有一个指向故事板或xib中的UIView的指针(通过控制点击并拖动到你的界面创建)时,它将是一个弱指针,因为你希望UIView只存在于故事板或xib允许它存在。更清楚的是,故事板或xib拥有该对象。
使用ARC retain
与strong
答案 1 :(得分:0)
好吧,因为它不允许我在我上面提出答案。我会回答同样的问题。由于现在在设置属性列表时必须使用arc,因此弱标签和强标签代替了保留功能。我通常会在单个视图应用程序中将所有内容设置为强大,然后当我使用多视图或桌面应用程序时,我使用的是弱。
答案 2 :(得分:0)
是的,在许多情况下,您希望覆盖默认的ARC行为。
Eg: @property(nonatomic,retain)NSString *response; -(void)parseHTTRResponse { //responseString is an autoreleased object but assignment will increase retain count by 1 self.response =[self stringFromData:response.data]; // equivalent to first statement __strong NSString *responseString = [self stringFromData:response.data]; }
现在问题是为什么会有人这样做?
增加局部变量的自动释放寿命,这需要很长时间(通常是NSURLConnection的对象)