37得票5回答
如何在Swift中识别强引用循环?

有没有一种工具或方法可以定位我的 SWIFT 代码中的强引用循环? 强引用循环是指两个类实例彼此引用而没有适当的安全性(weak/unowned),因此使得垃圾回收器无法在我创建的所有变量停止引用这些对象后将它们处理掉。

31得票2回答
IBOutlet和其他属性使用weak还是strong?

我已将我的项目转换为ARC,但我不明白我是否必须在IBOutlets中使用strong或weak。Xcode会这样做:在界面构建器中,如果我创建一个UILabel,并将其与助理编辑器连接到我的ViewController,它会创建以下内容:@property (nonatomic, stron...

28得票4回答
为什么我的弱引用在强引用消失之后就被清除了?

我有点固执,但我想要很好地理解弱引用和强引用,这就是为什么我再次向你请教的原因。 考虑以下情况:__weak NSString* mySecondPointer = myText; NSLog(@"myText: %@", myText); 结果是myText:(null),这很显然——...

14得票4回答
NSTimer内存管理

当我执行这段代码时:[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showButtons) userInfo:nil repeats:NO]; 我需要将其设为nil或释放它,或者做其他内存管...

14得票2回答
在Objective-C中,弱引用和强引用长什么样子?

维基百科指出,“在计算机编程中,弱引用是一种不会保护所引用的对象免受垃圾回收器回收的引用”。这两种类型的引用在代码中是如何表现的?弱引用是由自动释放消息创建的引用吗?

14得票3回答
在iOS中,self.timer = nil和[self.timer invalidate]有什么区别?

有人能解释一下 self.timer=nil 和 [self.timer invalidate] 之间的区别吗? self.timer 的内存位置会发生什么变化? 在我的代码中self.timer=nil 不停止计时器,但是[self.timer invalidate] 停止计时器。 如...

10得票2回答
Objective-C:弱引用属性不按预期工作

可能重复: 为什么iOS中的弱NSString属性不会被释放? 我是Objective C的新手,有一些问题我自己无法回答。 我有一段用于测试__weak变量的代码块(当然我使用ARC):NSString *myString = [[NSString alloc] initW...

10得票1回答
Swift弱引用比强引用慢很多

我正在使用Swift构建物理引擎。在对引擎进行一些最近的添加并运行基准测试后,我注意到性能显着变慢。例如,在下面的截图中,您可以看到FPS从60下降到3 FPS(FPS位于右下角)。最终,我将问题追溯到仅一个代码行: final class Shape { ... weak ...

7得票3回答
Swift - 在闭包中强引用self后预计会有内存泄漏

请问为什么这个代码不会泄漏? 我在闭包中捕获了self,这样就有两个指向彼此的强引用,因此应该永远不会调用Person对象的deinit方法。 首先,这是我的Person类: class Person { var name: String init(name: Strin...

7得票3回答
iOS界面元素中的强弱修饰符

在我的项目中,我不使用Interface Builder。我已经注意到一件事情,但是我不知道怎么解释。因此,重点来了。在使用IB并定义用户界面元素(例如UILabel或UIButton)时,我们在控制器中使用这个丑陋的前缀IBOutlet和一个“weak”修饰符。这很好用。但是当我们决定不使用...