2013-12-12 37 views
-1

我相信ARC会照顾所有内存管理问题,是否有使用保留的原因。现在有没有理由使用分配?现在有ARC是否需要使用保留

我试图通过一些文件看,但如果我们不需要这个东西了,那应该我们分配的属性,当我们创建它们无法找到任何

?我们应该让一切变得强大吗

+0

是您的问题有关保留/ *中分配属性*? –

+0

不,基于我所知道的..我认为ARC可能会取代所有这些东西..我希望如此..我会等待,看看这里的人们如何回应 – rserefgx

+2

如果你使用ARC,我认为编译器拒绝让你使用保留。 – mah

回答

2

如果您使用ARC,您应该使您的属性为weakstrong。如果只要某个其他对象指向该属性,则应该使用weak,如果只要您(自我)指向该属性,就应该使用strong。例如,当您的对象有一个指向故事板或xib中的UIView的指针(由控件单击和拖动到您的界面创建)时,它将是一个弱指针,因为您期望UIView仅存在只要故事板或xib允许它存在。更清楚的是,故事板或xib拥有该对象。

在使用ARC retain相同strong

+1

这真的很抽象,你能举一个真实的例子来进一步解释吗? – rserefgx

+1

'assign'用于原始C数据类型。 “weak”/“retain”/“strong”是针对对象的。 – nhgrif

+0

另外还有_strong限定符在某些情况下使用它 –

0

好,因为它没有让我给予好评我上面的答案。我会以同样的方式回应。由于您现在必须在设置属性列表时使用弧,因此弱标签和强标签将取代保留特征。我通常会在单个视图应用程序中将所有内容都设置为强大,然后当我使用多视图或我使用的表格式应用程序时使用弱视。

+0

确定这很有趣..所以你为什么这么做?我的意思是,当你去多视图或桌面时,为什么你必须转换为弱? – rserefgx

+0

,因为weak用于更临时的对象。所以由于表格视图或多视图,我们可以说由于用户使用而会有更多的临时指针。 – clarkatron

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的对象)

相关问题