Instruments 中显示的核心数据 NSManagedObject 泄漏周期——这是什么意思?
Core Data NSManagedObject Leak Cycle shown in Instruments – what does this mean?
我是 运行 Xcode 在模拟器中针对我的应用程序泄漏工具(注意我不是 运行 分配工具)。
当我 select 查看泄漏循环时,我得到的负载如下所示:
stracktrace 指向的代码是:
player.club = newClub
在我的应用程序中,一名球员属于一个俱乐部,我只是将其更新为一个新俱乐部。
Club
和 Player
都是 NSManagedObject。
- 一名球员属于一个俱乐部
- 一家具乐部has_many名球员
此外,当玩家移动球杆时,会创建一个新的 TransferHistory
(也是 NSManagedObject)
- 转会历史有一名球员
转会记录有to_club和from_club
一个俱乐部有很多transfers_bought
(倒数:"TransferHistory.to_club")
俱乐部has_manytransfers_sold
(逆:
"TransferHistory.from_club")
但是Instruments中没有提到TransferHistory
。
有人知道这张图片在说什么吗?
所以我将这个问题的范围缩小到我的架构中的其他关系。
具体来说,一个 Player 有一个 TeamSheetSelection,一个 TeamSheetSelection 有一个 Player。
在将球员分配到新俱乐部之前。我手动将这两个 has one relationships 设置为 nil。
Player.team_sheet_selection.player = nil
Player.team_sheet_selection = nil
进行此更改后,Player 对象将不再在内存中徘徊。
我是 运行 Xcode 在模拟器中针对我的应用程序泄漏工具(注意我不是 运行 分配工具)。
当我 select 查看泄漏循环时,我得到的负载如下所示:
stracktrace 指向的代码是:
player.club = newClub
在我的应用程序中,一名球员属于一个俱乐部,我只是将其更新为一个新俱乐部。
Club
和 Player
都是 NSManagedObject。
- 一名球员属于一个俱乐部
- 一家具乐部has_many名球员
此外,当玩家移动球杆时,会创建一个新的 TransferHistory
(也是 NSManagedObject)
- 转会历史有一名球员
转会记录有to_club和from_club
一个俱乐部有很多
transfers_bought
(倒数:"TransferHistory.to_club")俱乐部has_many
transfers_sold
(逆: "TransferHistory.from_club")
但是Instruments中没有提到TransferHistory
。
有人知道这张图片在说什么吗?
所以我将这个问题的范围缩小到我的架构中的其他关系。
具体来说,一个 Player 有一个 TeamSheetSelection,一个 TeamSheetSelection 有一个 Player。
在将球员分配到新俱乐部之前。我手动将这两个 has one relationships 设置为 nil。
Player.team_sheet_selection.player = nil
Player.team_sheet_selection = nil
进行此更改后,Player 对象将不再在内存中徘徊。