retain-cycle

    0热度

    1回答

    为了使用封闭的说法UIBarButtonItem我使用一个子类: class ActionBarButtonItem: UIBarButtonItem { private var actionHandler: (() -> Void)? convenience init(title: String?, style: UIBarButtonItemStyle, actionHa

    2热度

    2回答

    在我正在开发的应用程序中,需要定期轮询设备的数据,如加速度,陀螺仪和运动。我编写了以下课程来处理所有相关任务(我还使用第三方库SOMotionDetector来检测设备是否正在移动,如果只有这样,我会调用didReceiveAcceleration委托方法)。 import CoreMotion import Foundation import SOMotionDetector proto

    1热度

    1回答

    我想知道当你在内存管理方面(即我想避免一个保留周期)在Swift中为一个块分配一个函数时它意味着什么。 例如,假设我有如下定义按钮: class Button { var wasTapped:() -> Void } 我用它在一个视图控制器像这样: class ViewController { let button: Button func setUpButt

    0热度

    1回答

    我有一个mainViewController,我想在其中显示一个未定义计数的childViewControllers的小网格形式。 childViewControllers是基于数据创建的,因此我无法预先知道它们的数量。看起来,我只能与f.ex互动。如果它保留在mainViewController(f.ex.在声明的变量)保留的childViewController中的按钮 - 所以我的问题是,如

    0热度

    1回答

    我只花了一个小时试图修复我的代码中的保留周期。这基本上是视图控制器在解散后没有被释放。 但是,当我使用仪器检查内存泄漏时,它通过了每次泄漏检查。请看下面的图片。 的问题是,当我宣布类协议,我忘了标注委托作为弱......但是怎么来的仪器没有注意到这个保留周期? 我对内存管理相当陌生,如果我的问题是愚蠢的,请理解。谢谢。 :)

    0热度

    2回答

    比方说,我有一个类Animal class Animal: NSObject { var name: String = "" var weight: Double = 0 } 在我的视图控制器#1,我有这些对象的数组: class ViewController1: UIViewController { var animals: [Animal] = [ ....

    4热度

    1回答

    有人可以帮助解释为什么obj2会被取消吗? (我认为有一个保留周期) OBJ2和OBJ1是如此相似: 他们都有一个名为printNameLength属性,这两者是一个封闭,这既捕获自(是吗?)。 但obj2得到deinit(而obj1不是因为有一个保留周期),它让我感到惊讶,我不知道为什么。 非常感谢。 class myClass1 { var name: String l

    0热度

    1回答

    我想了解xcode调试工具如何在检测保留周期方面工作。 我有一个简单的父和子视图控制器都拥有彼此的引用。 并且在几次执行应用程序打开关闭VC之后,当我打开调试工具时,它既不显示保留周期也不存在运行时问题。 请从下面的代码示例和连接的Xcode调试工具的截图 class ViewController: UIViewController { var child: ChildViewContr

    0热度

    1回答

    我做了一个保留周期,但在剖析中,这些工具似乎找不到这个明显的保留周期 首先,ViewController将保留SubViewController作为属性subVC,并将其设置为SubViewController的委托。 @interface ViewController()<TestDelegate> @property(nonatomic,strong) UIViewController* s

    1热度

    2回答

    let observer = CFRunLoopObserverCreateWithHandler(kCFAllocatorDefault, CFRunLoopActivity.BeforeWaiting.rawValue, false, 0, { (observer, activity) in self.doSomething() }) CFRunLoopA