14得票3回答
核心数据 - 打破父上下文的保留循环

假设我们在Core Data模型中有两个实体:部门和员工。 部门与员工之间存在一对多的关系。 我有以下Managed Object Contexts: - Root: 连接到持久性存储协调器 - Main: 具有父级Root的上下文 当我想创建一个员工时,我会执行以下操作: - 我有一个M...

11得票1回答
Swift代理中的保留循环问题

我有一个UIViewController,其中包含一个UIToolbar。它们是从故事板实例化的。 我为我的UIToolbar创建了一个自定义类。根据一些逻辑,我会显示或隐藏其中的某些按钮。 UIViewController需要在单击其中某些按钮时采取行动。 为此,我在UIToolbar中...

40得票4回答
在从UIViewController调用的非保留完成块中引用self时,是否真的需要使用weakSelf/strongSelf技巧?

假设我有一个在UIViewController子类中的以下方法:- (void)makeAsyncNetworkCall { [self.networkService performAsyncNetworkCallWithCompletion:^{ dispatch_a...

10得票2回答
为什么UINavigationController和UIViewControllers之间没有保留循环

情况:有一个包含推送的UIViewController的UINavigationController。 1.UIViewController对UINavigationController有强引用。 @property(nonatomic,readonly,retain) UINavigat...

21得票2回答
在这个块中强引用 'self' 很可能会导致循环引用问题。

我有一个带有block的请求。但是编译器会发出警告: "在这个block中强引用了'self',很可能导致循环引用" __weak typeof(self) weakSelf = self; [generalInstaImage setImageWithURLRequest:[NSUR...

10得票1回答
在Swift中从字典中获取值或键时产生循环引用问题

当我从字典中获取值并将它们放入数组时,我无法再释放内存。我尝试从数组和字典中移除所有对象,但这些对象仍然存在于某个地方(析构函数未被调用)。 我是按照以下方式尝试的:class MyData { let i = 0 init () { NSLog("Init")...

61得票2回答
在dispatch_async函数中使用weak self

我看了很多关于在dispatch_async里使用__weak self的帖子,现在有点困惑。如果我有:self.myQueue = dispatch_queue_create("com.biview.core_data", NULL); dispatch_async(self.myQueu...

54得票7回答
在UIView.animateWithDuration(...)的闭包中是否需要使用[unowned self]?

UIView.animateWithDuration(1, animations: { [unowned self] in self.box.center = self.boxTopRightPosition }, ...

22得票3回答
递归块和ARC中的保留循环

编辑2: 不。建议的答案是关于异步调用。我想要并需要同步调用,就像普通的标准递归调用一样。 编辑: 当......__unsafe_unretained void (^unsafe_apply)(UIView *, NSInteger) ; 编译时没有警告或错误,但在运行时,将NULL存...

42得票2回答
嵌套块内引用弱引用

假设我已经创建了一个弱引用对象,使用方式为__weak typeof(self) weakSelf = self; [self doABlockOperation:^{ ... }]; 在该块内,如果我嵌套另一个块:[weakSelf doAnotherBlockOperati...