首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >另一种数据结构--用ARC防止ios5内存泄漏

另一种数据结构--用ARC防止ios5内存泄漏
EN

Stack Overflow用户
提问于 2012-05-03 22:57:19
回答 1查看 115关注 0票数 0

我有一个数据结构,我试图存储在目标c中的ios5与ARC。数据结构就像-

代码语言:javascript
复制
Class - **Book**
@property (strong) NSArray *pages;
@property (strong) Page *startingPage;

Class - **Page**
@property (strong) Book *book;
@property (strong) Page *nextPage;
@property (strong) Page *previousPage;

可以想象的问题是内存泄漏。这里有几个周期-

代码语言:javascript
复制
Book -> pages -> page -> book
nextPage -> previousPage
Book -> startingPage -> book.

我不能使属性变弱,因为如果这样做,我将失去指向该值的指针。因此,假设我将 page 中的图书设置为弱,那么当我尝试释放页面时,图书将被取消分配。然而,我仍然希望这本书能保持分配。

是否有其他方法可以存储此数据结构?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-04 00:44:20

我不明白为什么让页面->图书weak会让你失去这本书的指针。弱属性在它们指向的对象被释放之前不会自动为零。只要至少有一个其他对象对book有很强的引用,那么您就可以了。

因此,想象一个拥有图书NSArray的Library对象。数组保留添加到它的书籍,所以对该书的所有弱引用都将保持有效,直到书籍从数组中删除(并隐式释放)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10440465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档